Anwendung als 64-Bit-Prozess ausführen

  • VB.NET

Es gibt 7 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    Anwendung als 64-Bit-Prozess ausführen

    Hi

    Wie der Titel schon sagt, möchte ich eine Anwendung die mit VB.Net programmiert wurde als 64-Bit Prozess (unter Windows 7 64-Bit) ausführen.

    Die Anwendung wurde nicht von mir selbst programmiert (habe deshalb auch nicht die Projektdateien) und scheinbar nicht mit der Einstellung AnyCPU oder x64 kompiliert.
    Wenn die Anwendung mit der Option AnyCPU kompiliert wurde, läuft sie auf 32-Bit-Systemen als 32-Bit-Applikation sowie auf 64-Bit-Systemen als 64-Bit-Applikation.
    Wurde sie mit der Option x86 kompiliert, läuft sie auf allen Systemen als 32-Bit-Applikation.
    Wurde sie mit der Option x64 kompiliert, läuft sie auf 64-Bit-Systemen als 64-Bit-Applikation, auf 32-Bit-Systemen kann sie nicht laufen.
    Da diese Option zur Compilezeit festgelegt ist, kannst Du sie zur Laufzeit nicht mehr ändern.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Wenn die Anwendung mit der Option AnyCPU kompiliert wurde, läuft sie auf 32-Bit-Systemen als 32-Bit-Applikation sowie auf 64-Bit-Systemen als 64-Bit-Applikation.
    Wurde sie mit der Option x86 kompiliert, läuft sie auf allen Systemen als 32-Bit-Applikation.
    Wurde sie mit der Option x64 kompiliert, läuft sie auf 64-Bit-Systemen als 64-Bit-Applikation, auf 32-Bit-Systemen kann sie nicht laufen.

    Das ist mir bekannt, siehe erster Post.

    Da diese Option zur Compilezeit festgelegt ist, kannst Du sie zur Laufzeit nicht mehr ändern.

    Ich hatte gehofft, dass evtl. doch noch eine Möglichkeit besteht. Schließlich wird die eigentliche Kompilierung zum Maschinencode erst beim Programmstart gemacht.
    Leider nicht.
    Wenn Du eine AnyCPU-kompilierte Anwendung mit einer x86-kompilierten DLL auf einem 64-Bit-System startest, kommt es zum Crash.
    Das Programm greift auf genau eine Framework-Version zu und sucht nicht nach einer anderen, wenn eine nicht funktioniert.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Das ist mir auch bekannt. Das ist aber auch genau der Grund für mein Vorhaben - ich möchte eine x64-kompilierte DLL für diese Anwendung verwenden.

    Was seltsam ist: Über Google findet man nur, wie man eine AnyCPU-kompilierte Anwendung auf einem 64-Bit-System im 32-Bit-Modus starten kann, aber nicht Umgekehrt.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Infinity“ ()

    Infinity schrieb:

    aber nicht Umgekehrt.
    Was ist die Umkehrung?
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    Infinity schrieb:

    Was seltsam ist: Über Google findet man nur, wie man eine AnyCPU-kompilierte Anwendung auf einem 64-Bit-System im 32-Bit-Modus starten kann, aber nicht Umgekehrt.
    Solch eine Anwendung läuft halt 32 -> 32 und 64 -> 64.
    Hier hibt es keine Umkehrung.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!