Moin,
Ich habe Probleme beim Auswerten einer Record Strucktur, die ich von einer
WinAPI erhalte, welche mir einen Pointer darauf liefert. Diese sieht folgendermaßen aus.
Delphi-Quellcode:
TMyInformation = packed record
zeitwert: Int64;
zähler: ULONG;
Länge: ULONG;
Name: WChar;
end;
In Delphi ist der ULONG Typ als Cardinal definiert!?
Cardinal 0..4294967295 32 Bit, ohne Vorzeichen
Die
MSDN sagt zum ULONG Typ
ulong 0 to 18,446,744,073,709,551,615 Unsigned 64-bit integer
Ich vermute, das Problem was ich habe ist, das Aufgrund der unterschiedlichen Typen Cardinal und ULONG und ihrer Bytelängen
die Recordabfrage mit den Feldern nicht mehr richtig funktioniert. z.B wenn name=foobar und Länge=10, dann sowas raus
Delphi-Quellcode:
@myinformation.name -> "bar"
@myinformation.Länge -> "foobar??" !!!!
Problem:
1. Wenn ich nach dem Namen frage bekomme ich nur einen Teilstring.
2. Wenn ich nach der Länge frage bekomme ich den ganzen String + paar Byte dazu, dabei sollte Länge ein Cardinal mit der Länge von Name sein.
Vielleicht kann mir jemand sagen, ob meine Vermutung zutrifft und es wirklich an den Typen liegt, oder was ich da sonst falsch mache. *seufz*
mfG Richard