私はいくつかのextern関数を持っている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は私が間違えたところにnull例外をスローしますか?ty