我试图读取一个数组,它是由C#编写的一个dll函数创建的。当我打印出阵列的内容时,它实际上已经是垃圾了。编组const float **的正确方法是什么?
我怀疑这是因为我错误地将const float**
编为out IntPtr
。你如何正确编组const float**
?
DLL C++接口
int Foo(void *objPtr, uint64_t *resultLen, const float **result);
DLL导入语句
[DllImport("foo.dll", CharSet = CharSet.Auto)]
public static extern int Foo(IntPtr objPtr, out ulong resultLen, out IntPtr result);
长途区号
IntPtr objPtr = getObj();
IntPtr result;
ulong resultLen;
int output = Foo(objPtr, out resultLen, out result);
调用该函数 –
你可以考虑使用C++/CLI而不是P的例子所示的C++代码/调用 –