C#将double数组传递给C ++ dll

时间:2013-03-11 13:32:21

标签: c# c++ arrays dll parameter-passing

我有一个用C#代码初始化的数组;然后我将它传递给C ++ dll,其中将使用新值重新分配数组的每个单个条目。然后使用新值将数组返回给C#。 我想知道

  1. 将数组从C#传递给C ++的最佳方法是什么? (C#中此数组的数据结构)
  2. 从C ++返回数组的最佳方法是什么? (C ++中此数组的数据结构)
  3. 我的代码无效:

    在C#中

    private static double[] _statsArray = new double[4];
    GetImageStats( ref _statsArray);
    

    在C ++中:dll:

    DllExportImageStatistics GetImageStats( double (&pSignalArray)[4])
    

    感谢您的任何建议;几行代码将有很多帮助。

1 个答案:

答案 0 :(得分:2)

我认为应该是:

private static double[] _statsArray = new double[4];
GetImageStats(_statsArray); // Lose the ref

DllExportImageStatistics GetImageStats(double pSignalArray[4])