3
저는 모두 헤더 구조체로 시작하는 구조체가 여러 개 있습니다. 이C# (StructLayout 포함)
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;
};
문제입니다 내가 바이트 []와 연합을 할 필요가 있다는 것입니다. 나는 이것으로 시도했다
[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#에서 유니온과 같은 작업을 수행하려면 어떻게해야합니까?
"헤더에서 데이터를 가져올 수 없습니다"라는 것은 무엇을 의미합니까? 예외가 있습니까? 잘못된 데이터가 있습니까? 어떤 필드에서 헤더,'header' 또는'buffer' 필드에 접근하려고합니까? –
버퍼에 넣습니다 : {0xe0 0x11 0x11 0x00 0x05 0x00} 하지만이 때 recBuffer.header.start는 0xe0 대신 0x00입니다. – Calypoter