Hallo Zusammen
Ich bräuchte mal von einem Experten Hilfe wie ich folgende struct aus C++ in je ein korrektes (unter Delphi XE äquivalentes) Record umwandeln kann?
Code:
typedef struct inter2 {
char ipaddr[64];
unsigned long port;
unsigned short retry;
unsigned short timeout;
unsigned short alivetime;
char dummy1[8];
inter2_type_prm cntrl;
unsigned short transnum;
char dummy2[14];
inter2_type_prm trans[3];
} INTER2;
typedef struct inter2_type_prm {
unsigned short type;
char dummy1[2];
union {
typedef {
unsigned short path;
short addr;
unsigned long no;
unsigned long size;
} first;
typedef {
unsigned short path;
char dummy2[2];
unsigned long no;
unsigned long num;
} second;
} prm
} INTER2_TYPE_PRM;
Ich tue mich leider einfach noch schwer an den union bzw. an den verschachtelten typdef nach dem union.
Hier ist auch mein Versuch das umzuwandeln:
Delphi-Quellcode:
TFIRST = record
path : Word;
addr : Smallint;
no : Cardinal;
size : Cardinal;
end;
TSECOND = record
path : Word;
dummy2 : array[1..2] of AnsiChar;
no : Cardinal;
num : Cardinal;
end;
TINTER2_TYPE_PRM = record
typ : Word;
dummy1 : array[0..1] of AnsiChar;
case Integer of
0: ( first: TFIRST );
1: ( second: TSECOND );
end;
TINTER2 = record
ipaddr : array[0..63] of AnsiChar;
port : Cardinal;
retry : Word;
timeout : Word;
alivetime : Word;
dummy1 : array[0..7] of AnsiChar;
cntrl : TINTER2_TYPE_PRM;
transnum : Word;
dummy2 : array[0..13] of AnsiChar;
trans : array[0..2] of TINTER2_TYPE_PRM;
end;
Ich frage mich ob ich damit ich mit Namen bei First und Second arbeiten kann, hier unbedingt auch noch die zwei zwischen Records (TFIRST und TSECOND) erstellen muss?
Ich danke euch für eure schnelle Hilfe im Voraus!