我想聲明的德爾福記錄包含相同的佈局,因爲它在C.如何模擬Delphi記錄中的位域?
對於那些有興趣:這記錄是在Windows操作系統的LDT_ENTRY記錄工會的一部分。 (我需要在Delphi中使用此記錄,因爲我正在使用Delphi中的Xbox模擬器 - 請參閱sourceforge上的項目Dxbx)。
struct
{
DWORD BaseMid : 8;
DWORD Type : 5;
DWORD Dpl : 2;
DWORD Pres : 1;
DWORD LimitHi : 4;
DWORD Sys : 1;
DWORD Reserved_0 : 1;
DWORD Default_Big : 1;
DWORD Granularity : 1;
DWORD BaseHi : 8;
}
Bits;
據我所知,有在Delphi中沒有位字段可能:
無論如何,有問題的記錄被定義。我也試試這個:
Bits = record
BaseMid: Byte; // 8 bits
_Type: 0..31; // 5 bits
Dpl: 0..3; // 2 bits
Pres: Boolean; // 1 bit
LimitHi: 0..15; // 4 bits
Sys: Boolean; // 1 bit
Reserved_0: Boolean; // 1 bit
Default_Big: Boolean; // 1 bit
Granularity: Boolean; // 1 bit
BaseHi: Byte; // 8 bits
end;
但很可惜:它的大小變爲10個字節,而不是預期的4 我想知道我應該如何申報備案,讓我得到一個紀錄,相同的佈局,相同的大小和相同的成員。最好不加載吸氣/吸氣裝置。
TIA。
這真是個好主意! – gabr 2008-11-12 07:40:34