Wie kann man 32 bit-Anwendungen auf 64-bit-windows zum ausführen von 64-bit-Anwendungen in Windows\System32

Sagen, Sie haben eine app, dass Sie möchten, um den Nutzern die Fähigkeit zum durchsuchen der system32-Verzeichnis und Durchführung von Programmen im (wie telnet).

Was ist die beste Methode für die Unterstützung, wenn Sie brauchen, um Unterstützung für XP aufwärts als client und 2k ab für server?

Dass dies alles geschrieben, ich Frage mich, ob es einfach zu viel Zeit/Aufwand in die Bereitstellung einer durchsuchen, um dies zu tun, wo Sie könnten es einfach kopieren aus dem explorer. Weiterhin erfordert die Fähigkeit, zu starten.

Ich habe einige Diskussion über Nynaeve.

Bisher scheint es, gibt es die folgenden Optionen

  1. Erstellen Sie eine sysnative Ordner in windows, die Ihnen erlaubt, zu durchsuchen/ausführen-64 bit. Themen sind:
    • nur in Vista/Longhorn, also keine Unterstützung für XP-64
    • führt zu unterschiedlichen Pfad benennen, nicht verwenden können, denselben Pfad auf mehrere Versionen.
    • werden aktiv für die gesamte Fenster, nicht nur unsere app
    • kann nicht (wahrscheinlich nicht) angemessen bei der Installation der app
    • erlaubt explizit angeben, über den Pfad nur, welche version der app zu starten, wenn es eine 32-bit-und 64-bit-version
  2. Die windows-API verwenden, um vorübergehend deaktivieren Sie die Umleitung bei der Anzeige von Dateilisten oder die Ausführung von Benutzer Befehle ausführen. Themen sind:
    • Nur verfügbar auf 64-bit - haben zu Chaos mit GetProcAddress
    • nur unter bestimmten service packs
    • muss individuell identifizieren, die für alle Standorte, dass diese umgesetzt werden sollten,
    • Benutzer müssen eine separate Informationen darüber, ob dies ist ein 64-bit-app oder 32 bit.

Ob jemand schon einige Beispiel-code, die angezeigt, ein Windows Datei öffnen dialog (z.B. mit MFC CFileDialog) zeigt nativly für XP/Vista und ermöglicht die Anzeige von 64-bit-system32-Verzeichnis, das wäre genial.

Wenn jemand schon ein Beispiel starten des namens app, das wäre auch toll!

Edit:

Derzeit verwenden wir für CreateProcess starten Sie die app (die ist fehlerhaft).

err = CreateProcess((wchar_t*)exeName.c_str(), (wchar_t*)cmdLine.c_str(), NULL, NULL, FALSE, CREATE_SEPARATE_WOW_VDM, NULL, workingDir.c_str(), &startupInfo, &processInfo);
InformationsquelleAutor Greg Domjan | 2009-02-04
Schreibe einen Kommentar