[StructLayout( LayoutKind.Explicit, Pack = 1, Size = 20 )]
public struct StatusStruct
{
/// <summary>
/// validation field
/// </summary>
[FieldOffset( 0 )]
public Int32 _magic;
/// <summary>
/// Packet sequence number
/// </summary>
[FieldOffset( 4 )]
public Int32 _seq;
/// <summary>
/// Packet timestamp
/// </summary>
[FieldOffset( 8 )]
public Int64 _timestamp;
/// <summary>
/// Length of data section
/// </summary>
[FieldOffset( 16 )]
public Int32 _len;
}
У меня есть странная проблема на Arm4/WinCE, где Marshal.SizeOf() для этой структуры возвращает 24 байта, но в системе x86/Win32 она возвращает 20 байтов. Это серьезно затрудняет мою интероперабельность по сети. Кто-нибудь знает, почему?