[StructLayout(LayoutKind.Sequential,Pack=4)]
public struct ABC_QUERY
{
public bool bQueryGroup;
public byte bQueryGroup2;
public int ass;
public byte bAllSubAccount;
}
在C#中,Marshal.SizeOf(typeof(ABC_QUERY)) = 16字节,unsafe { sizeof() = 8字节};在VC中,= 12字节,不能互通
[StructLayout(LayoutKind.Sequential,Pack=4)]
public struct ABC_QUERY3
{
public byte bQueryGroup;
public byte bQueryGroup2;
public int ass;
public byte bAllSubAccount;
}Marshal.SizeOf(typeof(ABC_QUERY)) = 12字节
[StructLayout(LayoutKind.Sequential,Pack=4)]
public struct ABC_QUERY4
{
public bool bQueryGroup;
public bool bQueryGroup2;
public int ass;
public byte bAllSubAccount;
}
Marshal.SizeOf(typeof(ABC_QUERY)) = 16字节
怎么解决C++与C#的这个通信问题呢?各位帮忙哈
public struct ABC_QUERY
{
public bool bQueryGroup;
public byte bQueryGroup2;
public int ass;
public byte bAllSubAccount;
}
在C#中,Marshal.SizeOf(typeof(ABC_QUERY)) = 16字节,unsafe { sizeof() = 8字节};在VC中,= 12字节,不能互通
[StructLayout(LayoutKind.Sequential,Pack=4)]
public struct ABC_QUERY3
{
public byte bQueryGroup;
public byte bQueryGroup2;
public int ass;
public byte bAllSubAccount;
}Marshal.SizeOf(typeof(ABC_QUERY)) = 12字节
[StructLayout(LayoutKind.Sequential,Pack=4)]
public struct ABC_QUERY4
{
public bool bQueryGroup;
public bool bQueryGroup2;
public int ass;
public byte bAllSubAccount;
}
Marshal.SizeOf(typeof(ABC_QUERY)) = 16字节
怎么解决C++与C#的这个通信问题呢?各位帮忙哈
{
bool bQueryGroup;
byte bQueryGroup2;
int ass;
byte bAllSubAccount;
} struct ABC_QUERY3
{
byte bQueryGroup;
byte bQueryGroup2;
int ass;
byte bAllSubAccount;
}
struct ABC_QUERY4
{
bool bQueryGroup;
bool bQueryGroup2;
int ass;
byte bAllSubAccount;
}
VC定议,几个结构都是一样大的 ,4字节对齐
[StructLayout(LayoutKind.Explicit,Size=12)]
public struct ABC_QUERY3
{
[FieldOffset(0)]
public byte bQueryGroup;
[FieldOffset(1)]
public byte bQueryGroup2;
[FieldOffset(4)]
public int ass;
[FieldOffset(8)]
public byte bAllSubAccount;
}