我有一个 c++ dll,它有一些外部函数。它看起来像这样
//C++ Code
void GetData(byte * pData)
{
byte a[] = {3,2,1};
pData = a;
}
我已经在 C# 端使用此代码来获取数据:
//C# Code
[DllImport(UnmanagedDLLAddress)]
public static extern void GetData(ref IntPtr pData);
//and use it like
IntPtr pointer = IntPtr.Zero;
GetData(ref pointer);
byte[] data = new byte[3] // <===== think we know size
Marshal.Copy(pointer,data ,0,3);
但总是“指针”为零,所以 Marshal.Copy 在我做错的地方抛出空异常?泰