C++에서 byte 형태로 들어오는 데이터를 Struct 형태로 memcpy해서 변환해서 사용중이였습니다.
c#으로 넘어오니, bit field 형태를 구현하기 어려워 질문을 남겨봅니다.
[c++ 형태]
typedef struct InputWord
{
INT Data0;
INT Data1;
INT Data2;
INT Data3;
INT Data4;
}
typedef struct InputBits
{
unsigned bit0 : 1;
unsigned bit1 : 1;
unsigned bit2 : 1;
unsigned bit3 : 1;
unsigned bit4 : 1;
unsigned bit5 : 1;
unsigned bit6_11 : 6;
unsigned bit12 : 1;
unsigned bit13 : 1;
unsigned bit14_16: 3;
unsigned bit17 : 1;
unsigned bit18 : 1;
unsigned bit19 : 1;
unsigned bit20 : 1;
unsigned bit21 : 1;
unsigned bit22 : 1;
unsigned bit23_28: 6;
unsigned bit29 : 1;
unsigned bit30 : 1;
unsigned bit31 : 1;
unsigned bit32_63: 32;
unsigned bit64_95: 32;
}
typedef struct _tagInputData
{
InputWord Word;
INT Reserved1[10];
INPUTBITS Bits;
INT Reserved2[10];
}INPUTDATA, *LPINPUTDAT;
위와 같이 INPUTDATA struct에 byte 데이터를 memcpy해서 사용하였습니다.
c#에 위와 같은 구조로 구현해보려고 하니, Bit 영역에서 막혀버렸습니다.
구글링이나 여러 예문을 찾아봐도, c++과 같이 구조체를 사용하는 방법이 없더라구요.
Byte[] 형태의 데이터를 마샬링을 통해 Struct 형태로 한번에 변환하고 싶은데 방법이 없을까요?
[최초 등록일: ]
[최종 수정일: 8/21/2024]