C에서 사용하던 통신패킷을 델파이로 수정하려고 하는데...
<C>
typedef union _Packet
{
UCHAR aucBuffer[44];
struct
{
UCHAR ucDataH :3; UCHAR ucHead :4;
UCHAR ucDataL;
UCHAR ucTail;
} Type2B;
}
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
<Delphi>
TPacketRec = record
aucBuffer: array [1..44] of Byte;
Type2B = packed record ------> 이게 아닌거 같은데...???
ucDataH: array [1..3] of Byte;
ucHead : array [1..4] of Byte;
ucDataL: Byte;
ucTall : Byte;
end;
end;
var m_vPacket: TPacketRec;
확인부탁드립니다.??? 꾸벅~~~
저는 파스칼에서 공용체를 지원하지 않는줄 알았는데,
뉴스그룹에서 뒤져보니, 가변레코드라고 부르더군여.
아래 예를 많이 들어 두었던데,
C 로 되어 있는 있는 문장이 아래와 같다면,
union TRect {
struct { int left, top, right, bottom; };
struct { TPoint lefttop, rightbottom; };
};
델파이에서는 이렇게 쓰여있습니다.
TRect = record
case Integer of
0: (Left, Top, Right, Bottom: Integer);
1: (TopLeft, BottomRight: TPoint);
end;
참고하시기를~