如何将此指针存储在C#中的缓冲区中?

时间:2014-11-25 08:12:28

标签: c# dllimport

[DllImport("Azoteq_HID_DLL.dll", CallingConvention = CallingConvention.StdCall, CharSet   =CharSet.Ansi)]
public static extern int SetCurrentSerial(int Size, void* Msg);

这是我的尝试,得到语法错误“无法将byte []转换为字节”

byte Size = new byte[1024];
void* Msg;
SetCurrentSerial(Size, &Msg);

1 个答案:

答案 0 :(得分:1)

我们不知道该方法在做什么;但如果Msg是缓冲区的地址,则可能是:

byte[] buffer = new byte[1024];
fixed(byte* ptr = buffer)
{
    SetCurrentSerial(buffer.Length, ptr);
}

如果数据仅是调用方法的本地数据,您还可以使用stackalloc来保存分配和固定数组。