Einzelnen Beitrag anzeigen

HolgerX

Registriert seit: 10. Apr 2006
Ort: Leverkusen
961 Beiträge
 
Delphi 6 Professional
 
#18

AW: läuft Programm unter 32-Bit oder 64-Bit ab ?

  Alt 10. Jun 2017, 19:28
Hmm..

@himitsu

Wieso ist der Code blödsinn?
In D6 gibt es keine Definition von IsWow64Process.

Unter älteren OS (vor XP SP2) gibt es auch diese Funktion nicht in kernel32. (Auch wenn das heute kaum noch jemanden iterressiert, jedoch haben wir tatsächlich noch Kunden mit W2K-Rechnern..)
Diese Funktion gibt es auch auf 32Bit-Systemen, somit sollte das 'Nichtvorhandensein' heute die Ausnahme sein.

Dass er nicht optimiert ist, kann sein.. Ist halt nur Copy/Paste und funktioniert.
Dass hier GetProcAddress statt GetProcAddressA obwohl am Funktionskopf mit 'A' angezeigt verwendet wird..
Ist mir selber noch nicht aufgefallen und macht für die Verwendung eigentlich auch keinen Unterschied.


Das was Dir diese Funktion zurück gibt, ist, dass deine Filezugriffe deiner App umgeleitet werden oder nicht.
Gerade bei Berücksichtigung der von Dir angegebenen Funktion 'Wow64DisableWow64FsRedirection' ist dieser Source brauchbar, da Du damit prüfen kannst, ob dein Disable der Umleitung funtioniert/noch aktiv ist.

Ich nutze sie z.B. um meine Reg-Zugriffe mit einem Flag zu versehen und so ohne 'Wow64DisableWow64FsRedirection' dennoch auf die 64Bit -Pfade zuzugreifen.

Den 'Wow64DisableWow64FsRedirection' hat einen Haken :

Zitat:
For example, DLL loading depends on file system redirection, so disabling file system redirection will cause DLL loading to fail.
Sprich, da kein Redirecting, wird versucht die 64Bit-DLL statt die 32Bit-DLL aus dem umgeleiteten Verzeichnis zu laden und dass dürfte wohl nicht so ganz funktionieren.

Auch für den Zugriff auf System32 (ohne Umleitung) gibt es eine saubere Alternative : %Windir%\Sysnativ\ (oder so, aus dem Kopf geschrieben).

Ich habe z.B. bei der Registry nicht verstranden, wieso es darin Umeitungen gibt.
Bei allen anderen kann ich einen gewissen Sinn (laden der 32Bit DLLs) verstehen.

Jedoch diese für meine 32 Bit App komplett abschalten und dann Gefahr laufen, dass es dann an anderer Stelle nicht klapt ist mir zu heikel.
Da ich 32Bit Apps erstelle nutze ich an den Stellen den meiner Meinung nach sauberen, geziehlten Weg um die Umlenkung zu 'umgehen'
  Mit Zitat antworten Zitat