すべてヘッダー構造体で始まる複数の構造体があります。このような
public struct BaseProtocol {
public Header header;
public Footer footer;
};
ヘッダーは
public struct Header {
public Byte start;
public Byte group;
public Byte dest;
public Byte source;
public Byte code;
public Byte status;
};
問題は、それらを Byte[] で結合する必要があることです。これでやってみた
[StructLayout( LayoutKind.Explicit, Size=255 )]
public struct RecBuffer {
[FieldOffset( 0 )]
public Header header;
[FieldOffset( 0 )]
[MarshalAs( UnmanagedType.ByValArray, ArraySubType = UnmanagedType.I1, SizeConst = 255 )]
public Byte[] buffer;
};
バッファにデータを入力すると、ヘッダーからデータを取得できません。c++ のユニオンと同じように c# を作成するにはどうすればよいですか?