AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) läuft Programm unter 32-Bit oder 64-Bit ab ?
Thema durchsuchen
Ansicht
Themen-Optionen

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

Ein Thema von Gerkey · begonnen am 6. Jun 2017 · letzter Beitrag vom 10. Jun 2017
 
HolgerX

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

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
 

 

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 08:47 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