Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#32

AW: Programm-Absturz seit Delphi 11.2

  Alt 10. Okt 2022, 10:03
Zitat:
... IntPtr ... Cardinals ...
Oder gar Integer (31 Bit) mit Prüfungen auf < 0, drum ist IMAGE_FILE_LARGE_ADDRESS_ AWARE nicht standardmäßig aktiv.

UIntPtr
IntPtr
NativeUInt
NativeInt

und allgemein überall die richtigen Typen, wie z.B. LPARAM, WPARAM und LRESULT für SendMessage/PostMessage, anstatt Integer/Cardinal usw.
oder andersrum z.B. HRESULT statt Integer/Cardinal/Sonstwar für das aus GetLastError und Co.



Hier sieht es eher so aus, als wenn signed 32 Bit-Integer-Zeiger (nicht unsigned Cardinal) an einen 64 Bit-Integer übergeben/gecastet wird.
$9xxxxxxx hat das höchste Bit gesetzt, drum wird/bleibt das negaitv, also es werden auch alle 32 höheren Bits negativ.

In Bezug auf einen Integer->Int64 ist es vollkommen korrekt, dass es ab $800000000 zu $FFFFFFFF800000000 wird.
$2B or not $2B

Geändert von himitsu (10. Okt 2022 um 13:39 Uhr)
  Mit Zitat antworten Zitat