如何使用int& C调用C ++ dll函数和来自C#的int *参数?

时间:2010-06-23 20:41:55

标签: c# c++

我的C ++ DLL有这样的功能:

void func1(int& count, int* pValue);

这个函数将确定“count”,并将一些值放入pValue int数组中,这是“count”的长度。

如何定义我的C#代码?你可以忽略[DllImport ...]部分。

感谢,

1 个答案:

答案 0 :(得分:2)

参考&并不会发生我已经解决过的事情。

MSDN has the answers you seek

并且不要忘记将您的函数从C ++导出为extern "C"

根据C#方面的MSDN: Default marshaling for arrays,我认为你需要类似下面的内容

public static extern void func1( 
  out int count, 
  [MarshalAs(UnmanagedType.LPArray, SizeParamIndex=0)] int[] values );

SizeParamIndex告诉.net哪个参数将保存要编组的数组的大小。