我有一個C++ dll,它有一些extern函數。 和它的外觀像這樣獲取C++指針c#
//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拋出空例外 其中i錯了嗎? ty
即C++代碼有UB。 – Pubby
什麼是字節型? – billz
@Pubby:那我該如何解決? – mX64