Delphi-Quellcode:
type
PMpaConfig = ^TMpaConfig;
PMPA_CONFIG = PMpaConfig;
{$EXTERNALSYM PMPA_CONFIG}
tagMPA_CONFIG = record
structLen: ULONG;
set_: record
case Integer of
0: (
bits: record
(*
UCHAR FrameBufferSizeRx : 1;
UCHAR NumFrameBuffersRx : 1;
UCHAR BaudRate : 1;
UCHAR ClockRate : 1;
UCHAR ClockMode : 1;
UCHAR InternalLoopback : 1;
UCHAR RxClockSource : 1;
UCHAR TxClockSource : 1;
UCHAR TRXCOutput : 1;
UCHAR Encoding : 1;
UCHAR DPLLClockSource : 1;
UCHAR DPLLMode : 1;
UCHAR AutoRTSDeact : 1;
UCHAR CRCPreset : 1;
UCHAR IdleLineControl : 1;
ULONG pad : (8*sizeof(ULONG) - 13);
*)
end);
1: (
all: ULONG);
{ end; }
end;
FrameBufferSizeRx: ULONG;
NumFrameBuffersRx: ULONG;
BaudRate : ULONG;
ClockRate : ULONG;
ClockMode : ULONG;
InternalLoopback : BOOLEAN;
RxClockSource : CLOCK_SOURCE;
TxClockSource : CLOCK_SOURCE;
TRXCOutput : TRXC_OUTPUT;
Encoding : ENCODING;
DPLLClockSource : DPLL_CLOCK_SOURCE;
DPLLMode : DPLL_MODE;
AutoRTSDeact : BOOLEAN;
CRCPreset : BOOLEAN;
IdleLineControl : IDLE_LINE_CONTROL;
end;
TMpaConfig = tagMPA_CONFIG;
{$EXTERNALSYM tagMPA_CONFIG}
MPA_CONFIG = tagMPA_CONFIG;
{$EXTERNALSYM MPA_CONFIG}
Das Bitset lässt sich nicht direkt übersetzen.
[edit]
Das C-Bitset könnte man mit einem Delphi-set ersetzen (die Benutzung im Quellcode wäre nicht identisch; und pad ist damit schwer bis gar nicht abbildbar)
Delphi-Quellcode:
bits: set of (
FrameBufferSizeRx,
NumFrameBuffersRx,
BaudRate,
ClockRate,
ClockMode,
InternalLoopback,
RxClockSource,
TxClockSource,
TRXCOutput,
Encoding,
DPLLClockSource,
DPLLMode,
AutoRTSDeact,
CRCPreset,
IdleLineControl)
Allerdings weiss ich nicht, ob der Delphi-Compiler (habe kein Delphi installiert) mit set of () zurecht kommt - falls nicht, müsste man einen Typen dafür definieren...
[/edit]
Alignment könnte interessant werden... (packed)