typedef struct RevPackage
{
BOOL TimeTag;
DWORD RevData;
}RevPackage_STRUCT; [StructLayout(LayoutKind.Sequential)]
        public struct RevPackage_STRUCT
        {
            [MarshalAs(UnmanagedType.Bool)]
            public bool TimeTag;
            public uint RevData;
        }
这样是否正确 求正解。

解决方案 »

  1.   

    DWORD 好像是INT,你自己试试,应该差不多
      

  2.   

    我觉得public struct RevPackage就可以了吧?后面的好像是实例名。
      

  3.   

    BOOL -> int
    DWORD 32-bit unsigned integer
      

  4.   

    win7安装vs2010老是重启,之后报错,天哪,折腾半个月了……
      

  5.   

    lz,你这样转换完全正确,至于“接收不到数据”,那是程序逻辑另外的问题:
    UnmanagedType.Bool://4 字节布尔值(true != 0、false = 0)。这是 Win32 BOOL 类型。
      

  6.   


    public enum RevPackage
    {
        boolTimeTag;
        int RevData;//如果对类型要求严的话,要看处理器的位数,如果32位的,c++ int= C#Int32,64位的 就 Int64}
      

  7.   

    public struct RevPackage
    {
        boolTimeTag;
        int RevData;
    }