AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein 32 Bit Programme auf 64 Bit Rechnern
Thema durchsuchen
Ansicht
Themen-Optionen

32 Bit Programme auf 64 Bit Rechnern

Ein Thema von delphifan2004 · begonnen am 17. Nov 2005 · letzter Beitrag vom 21. Nov 2005
Antwort Antwort
NicoDE
(Gast)

n/a Beiträge
 
#1

Re: 32 Bit Programme auf 64 Bit Rechnern

  Alt 18. Nov 2005, 11:43
Zitat von Traudix:
Aus diesen Ausführungen entnehme ich, das ich 32 Bit Programme nicht ändern muß, wenn sie auf einer 64 Bit CPU laufen sollen. Denn, wenn der Prozessorkern auch beim 64 Bitter X86-kompatibel ist und im RealMode nur 16 Bittig, kennt er ja auch die 8- und 16-bittigen Register.
Da ist für die x86-64 (amd64, em64t) meist zutreffend. Der 32-Bit-Emulator (WoW64) den Microsoft entwickelt hat, sorgt dafür, dass die meisten 32-Bit-Anwendungen wie bisher funktionieren.

1) Schwierig wird es zum Beispiel dadurch, dass 32-Bit-Module nicht in 64-Bit-Prozesse geladen werden können (und vis versa). Das heißt, dass man für Shellerweiterungen eine 64-Bit-DLL schreiben muss um in den 64-Bit Explorer zu kommen. Wenn man Strukturen aus anderen Prozessen liest (so wie LuckieDIPS; siehe TLvItemBuffer), darf man nicht vergessen, dass es sich um die 64-Bit-Versionen der Strukturen handelt.

2) Die Registrierung für 32-Bit-Anwendungen ist in die 64-Bit-Registrierung eingehängt. Um aus WoW64 Zugriff auf die 64-Bit-Registrierung zu erhalten muss der API spezielle Flags übergeben.

3) Einige Systemverzeichnisse werden innerhalb von WoW64 automatisch umgeleitet. Ein 32-Bit-Programm sieht zum Beispiel C:\WINDOWS\SysWOW64 als "C:\WINDOWS\system32" (unter C:\WINDOWS\SysWOW64 liegen die DLLs der Win32-API unter C:\WINDOWS\system32 die DLLs der Win64-API). Das gleiche gilt auch für das %ProgramFiles%-Verzeichnis und andere. Um die 'Umleitung' zu umgehen muss man diese mit einer neuen API deaktivieren. Es können also nur 32-Bit-Programme auf C:\WINDOWS\system32 zugreifen wenn sie die neuen APIs kennen...

Zitat von Traudix:
(Bios-Interrupts, Farbpaletten-Einstellungen, Maussteuerung...) Hab auch paar Delphi Programme mit Assemblerteilen, wo sinngemäß das gleiche Problem vorliegt. Nun, wenn das später auf dem 64 Bitter kein Problem ist, brauche ich da nix zu ändern.
Es gibt keinen 16-Bit-Emulator (ntvdm) mehr!
Das ist mir bei BiosHelp auf die Füße gefallen. Ich musste eine Weile Suchen bevor ich eine Lösung für Win64 gefunden hatte (Microsoft musste eine neue API einführen um diese speziellen Bereiche auslesen zu können, da die bisherigen Methoden nicht mehr funktionierten).

Kurz: Es geht nicht ohne Tests auf einem echten Win64-System (sollte man seine Software nicht ohnehin auf den Zielplattformen testen )
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:04 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz