Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.033 Beiträge
Delphi 12 Athens
|
AW: DWORD-Cast unter XE2 x64
31. Jan 2012, 10:45
Delphi-Quellcode:
// da irgendwer auf die saublöde Idee gekommen ist den Integer nicht mehrmitwachsen zu lassen :stupid:
{$IF Declared(NativeUInt)}
Inc(NativeUInt(Notifydata), Nextentry);
{$ELSE}
Inc(Cardinal(Notifydata), Nextentry);
{$IFEND}
// oder
Inc({$IF Declared(NativeInt)}NativeInt{$ELSE}Cardinal{$ENDIF}(Notifydata), Nextentry);
// oder
type // global deklariert
Irgendwas = {$IF Declared(NativeUInt)}NativeInt{$ELSE}Cardinal{$ENDIF};
Inc(Irgendwas(Notifydata), Nextentry);
// oder
type // macht man bei diesem Scheiß nicht mit, dann :twisted:
{$IF Declared(NativeInt)}
Integer = NativeInt;
Cardinal = NativeUInt;
{$IFEND}
Inc(Cardinal(Notifydata), Nextentry); // Pointer sind vorzeichenlos :zwinker:
// oder
Inc(LPARAM(Notifydata), Nextentry); // weiß jetzt nicht direkt wo es deklariert ist (vermutlich Windows oder Messages)
// LPARAM/WPARAM/RPARAM würd für Konvertierungen bei SendMessages verwendet
// oder
Inc(PAnsiChar(Notifydata), Nextentry); // PByte verfügt scheinbar nicht immer eine über Pointer-Arithmetik
// PChar/PAnsiChar/PWideChar verfügen aber über sowas und PAnsiChar rechnet immer mit 1
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
Geändert von himitsu (31. Jan 2012 um 10:53 Uhr)
|
|
Zitat
|