[英]C++ to C#: What is equivalent of array of byte pointer with 3 element
我在 C++ 中有這段代碼
BYTE * apData[3]
如何將其轉換為 C#? (我正在使用 DllImport )
只需使用byte[]
:
[DllImport EntryPoint="myfunc"]
public extern static void MyFunc(byte[]);
byte[] apData = new byte[3];
MyFunc(apData);
這是一個長度為 3 的數組,指向BYTE
的指針。
假設 this 出現在結構體中,它的聲明如下:
[MarshalAs(UnmanagedType.ByValArray, SizeConst=3)]
IntPtr[] apData;
或者,如果數組作為參數傳遞,請像這樣聲明該參數:
[MarshalAs(UnmanagedType.LPArray, SizeConst=3)]
IntPtr[] apData
只需使用 DLLImport 如下所示
[DllImport EntryPoint="func"]
public extern static void Func(byte[]);
byte[] apData = new byte[3];
您可以使用原始指針
[System.Runtime.InteropServices.DllImportAttribute("<Unknown>", EntryPoint="fun")]
public static extern void fun(System.IntPtr byte_array) ;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.