PS: Eine Änderung auf NativeUInt wäre da wohl korrekt gewesen (falls Cardinal damals richtig gewählt und nicht Integer gemeint war).
So sieht es auch aus, Beispiel:
Delphi-Quellcode:
type
ULONG_PTR = NativeUInt;
SIZE_T = ULONG_PTR;
function ReadProcessMemory(hProcess: THandle; const lpBaseAddress: Pointer; lpBuffer: Pointer;
nSize: SIZE_T; var lpNumberOfBytesRead: SIZE_T): BOOL; stdcall;
Das Problem sind var Parameter wie diese. Denn da das vorher eben Cardinal war, muss man hier jetzt eingreifen.
Ich selbst habe an solchen Stellen einen eigenen Typ benutzt, der auf den korrekten Typ je nach Delphiversion mappt.