C++结构类型转C#结构类型
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;
}
这样是否正确 求正解。 --------------------编程问答-------------------- DWORD 好像是INT,你自己试试,应该差不多 --------------------编程问答-------------------- 可以的。 --------------------编程问答-------------------- 我觉得public struct RevPackage就可以了吧?后面的好像是实例名。 --------------------编程问答-------------------- 用sizeof校验一下
--------------------编程问答-------------------- BOOL -> int
DWORD 32-bit unsigned integer --------------------编程问答-------------------- win7安装vs2010老是重启,之后报错,天哪,折腾半个月了…… --------------------编程问答-------------------- 程序执行时候,没报错,但是就是以结构体为指针 时候 接收不到数据 --------------------编程问答-------------------- lz,你这样转换完全正确,至于“接收不到数据”,那是程序逻辑另外的问题:
UnmanagedType.Bool://4 字节布尔值(true != 0、false = 0)。这是 Win32 BOOL 类型。
--------------------编程问答--------------------
--------------------编程问答-------------------- public struct RevPackage
public enum RevPackage
{
boolTimeTag;
int RevData;//如果对类型要求严的话,要看处理器的位数,如果32位的,c++ int= C#Int32,64位的 就 Int64
}
{
boolTimeTag;
int RevData;
}
补充:.NET技术 , C#