LPARAM in Win32 & Win64
-
Hi
Kann es sein, dass in Win64 LPARAM als 64-Bit Variable deklariert ist im Unterschied zu 32-Bit Variable in Win32? Gäbe es dann nicht gewisse Portabilitätsprobleme, finge ja schon an bei der WindowProc...
Hab ich da was verstanden oder muss man dann seine Anwendungen für Win64-Systeme neu kompilieren?
-
Natürlich musst Du eine Anwendung für x64/IA64 neu compilieren! Wie stellst Du Dir das sonst vor. Das sind doch ganz andere Assembler-Befehle!
Aber: Verwechsle das nicht mit dem "wow64", welches auf einem x64/IA64-Rechner dein "herkömmliches" x86 Programm ausführt. Da wird dann alles "emuliert" und Du musst logischerweise nichts neu übersetzen...
-
Jochen Kalmbach schrieb:
Natürlich musst Du eine Anwendung für x64/IA64 neu compilieren! Wie stellst Du Dir das sonst vor. Das sind doch ganz andere Assembler-Befehle!
Hehe, das ist doch klar! Nur wusste ich nicht/hätte ich nicht gedacht, dass dann einfach viele Parameter der Windows-Funktionen größer werden. Hängt das eigentlich damit zusammen, dass Zeiger in Win64 auch 64Bit breit sind (falls dem so sein sollte)? Die LPARAMs sind ja meistens User-Parameter, bei denen man auch Zeiger übergeben kann....
Und: Win16-Anwendungen sind ja in der Exe auch als Win16-Anwendungen markiert. Gilt das gleiche für Win32-Anwendungen? Also laufen ja auch normale Win32-Anwendungen auf Win64 Systemen? Na gut, muss ja sonst sein, wär ja sonst etwas albern...
Edit: Ich verwechsle es schon nicht mit wow64, hab ich schließlich noch nie was von gehört
-
Ja, natürlich hängt es damit zusammen, das bei 64-Bit die Pointer 64-Bit sind
Und ja, 32-Bit Anwendungen laufen auch auf x64/IA64 Rechner (aber eben "Emuliert"). Auch werden hier teile des OS Emuliert (siehe z.B. meinen Artikel über Registry Redirector in x64/IA64).
16-Bit Anwendungen laufen aber nicht mehr unter einem 64-Bit OS.
-
Cool, danke für Infos! Phiuu, 5 Artikel mit Schnitt 4,7
-
Jop, Jochen hats echt drauf
.