c++到c#:有3个元素的字节指针数组等于什么?
本文关键字:于什么 数组 什么 指针 字节 3个 元素 c++ | 更新日期: 2023-09-27 17:53:27
我用c++写了这段代码
BYTE * apData[3]
如何将其转换为c# ?(我使用DllImport)
就用byte[]
:
[DllImport EntryPoint="myfunc"]
public extern static void MyFunc(byte[]);
byte[] apData = new byte[3];
MyFunc(apData);
这是一个指向BYTE
的长度为3的数组。
假设this出现在结构体中,它被声明为:
[MarshalAs(UnmanagedType.ByValArray, SizeConst=3)]
IntPtr[] apData;
或者,如果数组作为形参传递,则像这样声明该形参:
[MarshalAs(UnmanagedType.LPArray, SizeConst=3)]
IntPtr[] apData
可以使用原始指针
[System.Runtime.InteropServices.DllImportAttribute("<Unknown>", EntryPoint="fun")]
public static extern void fun(System.IntPtr byte_array) ;
使用如下所示的DLLImport
[DllImport EntryPoint="func"]
public extern static void Func(byte[]);
byte[] apData = new byte[3];