C++原型typedef struct RevPackage
{
BOOL TimeTag;
DWORD RevData;
}RevPackvoid __stdcall ReceiveData(HANDLE USB,BYTE No, RevPack * Buffer);对应到C#的代码 [StructLayout(LayoutKind.Sequential)]
public struct RevPack
{
public bool TimeTag;
public uint RevData;
} [DllImport("USB.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
public static extern void ReceiveData(IntPtr USB, Byte No, ref RevPack Buffer);问题描述:
1.在C++中数据接收正常。
2.在C#调用此方法后,数据接收不到。RevPack.RevData 一直处于等于0
头大 求高手
public struct RevPackage_STRUCT
{
[MarshalAs(UnmanagedType.Bool)]//4 字节布尔值(true != 0、false = 0)。这是 Win32 BOOL 类型。 public bool TimeTag;
public uint RevData;
}