簡體   English   中英

C++ 到 C#:相當於 3 個元素的字節指針數組

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM