Einzelnen Beitrag anzeigen

Delphi-Laie

Registriert seit: 25. Nov 2005
1.474 Beiträge
 
Delphi 10.1 Berlin Starter
 
#1

GetWindowLong versus GetWindowLongPtr

  Alt 3. Mai 2012, 21:49
Hallo Delphifreunde!

In der MSDN-Beschreibung zur Funktion "GetWindowLong" findet sich folgender bemerkenswerter Satz: "To write code that is compatible with both 32-bit and 64-bit versions of Windows, use GetWindowLongPtr." In der parallelen Beschreibung der Funktion "GetWindowLongPtr" findet sich neben erstgenanntem Satz zusätzlich noch: "When compiling for 32-bit Windows, GetWindowLongPtr is defined as a call to the GetWindowLong function."

Das ist insofern erst einmal irreführend, weil suggeriert wird, daß man die GetWindowLongPtr-Funktion mit nur einem universellen Quelltext für beide Plattformen benutzen kann, doch unter Win32 gibt es sie nicht. Man muß mithin mit Compilerschaltern arbeiten. Doch nun stellt sich (mir) die Frage, ob das überhaupt nötig ist. Mit anderen Worten: Was macht GetWindowLongPtr unter 64 Bit der dort auch verfügbaren GetWindowLong-Funktion überlegen?

Ich benutzte, ohne dieses Detail zu kennen, GetWindowLong nämlich auch schon unter 64 Bit und konnte keinerlei Funktionseinbußen gegenüber 32 Bit erkennen.
  Mit Zitat antworten Zitat