我的C ++ DLL有这样的功能:
void func1(int& count, int* pValue);
这个函数将确定“count”,并将一些值放入pValue int数组中,这是“count”的长度。
如何定义我的C#代码?你可以忽略[DllImport ...]部分。
感谢,
答案 0 :(得分:2)
参考&
并不会发生我已经解决过的事情。
并且不要忘记将您的函数从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哪个参数将保存要编组的数组的大小。