Programm auf anderen Rechner zur Verfügung stellen



  • Ich habe ein Programm geschrieben in C++, genauer mit Visual C++ Express 2005.
    Das Progamm nutz, soweit ich weiß, das NET-Framework und DirectX. Dazu hatte ich auf meinem Rechner "Microsoft DirectX SDK" und "Microsoft® Windows® Software Development Kit for Windows Vista™ and .NET Framework 3.0 Runtime Components" (oder ähnlich Version) installiert. Auf meinem Rechner läuft es optimal, doch wenn ich es auf einem anderen Rechner (WindowsXP) installieren, und das Programm dann starte funktioniert es nicht sonder es wird die Fehlermeldung:

    Prozedureinsprungpunkt "_except_handler4_common" wurde in der DLL "msvcrt.dll" nicht gefunden
    

    ausgeben.

    Ich hab schon

    "Microsoft Visual C++ 2005 SP1 Redistributable Package (x86)"
    "Microsoft .NET Framework 2.0 Redistributable (x86)"
    "Microsoft .NET Framework 3.0 Redistributable Package"

    installiert doch es ändert sich nichts !

    Kann mir jmd. helfen ? BITTE 😞



  • Ich hab mittlerweile herausgefunden, dass msvcrt.lib eigentlich auf msvcr80.dll und nicht auf msvcrt.dll linken sollte. Und nur msvcr80.dll ist im "Microsoft Visual C++ 2005 SP1 Redistributable Package (x86)" enthalten.

    Doch wie kann ich das ändern ?


  • Mod

    Wo hast Du die msvcrt.dll her? Die Datei gehört zum Betriebssystm und liegt in Windows\System32 und sollte icht von Dir ausgeliefert werden!



  • Sie wird auch nicht von mir ausgeliefert...



  • Kann es vielleicht irgendein Problem zwischen Vista und XP sein ?

    Mittlerweile habe ich mir Visual C++ Express 2008 heruntergeladen und das Programm compiliert und habe immer noch das gleiche Problem. Desweitern tritt das Problem nicht nur auf den einem PC auf, sondern auch auf anderen PCs( ebenfalls XP).

    EDIT:

    Es scheint schon andere mit dem gleiche Problem gegeben haben
    http://www.thescripts.com/forum/thread611031.html
    Doch wirklich schlau, was ich nun machen muss, werde ich auch nicht.

    Dass das Programm läuffähig ist wäre sehr wichtig... WER AUCH IMMER EINE IDEE HAT - MELDEN !



  • Das hat sicher etwas mit der Reihenfolge zu tun, in welcher der Linker die msvcrt.lib sucht. Die Reihenfolge der Verzeichnisse in den Linker-Einstellungen sollte die gleiche sein wie in den Include-Einstellungen.



  • sri schrieb:

    Das hat sicher etwas mit der Reihenfolge zu tun, in welcher der Linker die msvcrt.lib sucht. Die Reihenfolge der Verzeichnisse in den Linker-Einstellungen sollte die gleiche sein wie in den Include-Einstellungen.

    Du meinst Projekteigenschafften -> Linker -> Input -> Additional ...:
    "winmm.lib d3dx9.lib d3d9.lib"

    Wie kann das falsch sein ?


  • Mod

    Hast Du mehrere msvcrt.lib's auf Deinem Rechner?



  • pressure schrieb:

    Du meinst Projekteigenschafften -> Linker -> Input -> Additional ...:
    "winmm.lib d3dx9.lib d3d9.lib"

    Nein, ich meine "Tools - Options" und dann "Projects and Solutions - VC Directories". Hier legt man zusätzliche Include- und Lib-Verzeichnisse fest.



  • Martin Richter schrieb:

    Hast Du mehrere msvcrt.lib's auf Deinem Rechner?

    Auf welchem, auf dem Rechner wo es läuft oder auf dem wo es nicht läuft ?

    EDIT: Auf dem Rechner auf dem ich es compiliere und es läuft habe ich mehre in folgenden Ordnern
    C:\Program Files\Microsoft Visual Studio 9.0\VC\lib
    C:\Program Files\Platform SDK\Lib\IA64 //Windows Server 2003 R2 Platform SDK
    C:\Program Files\Platform SDK\Lib\AMD64 //Windows Server 2003 R2 Platform SDK
    C:\Program Files\Microsoft Visual Studio 8\VC\lib
    C:\Program Files\Microsoft SDKs\Windows\v6.0\VC\LIB // Windows Vista + .NET SDK

    Beim 2005er wird nur "C:\Program Files\Microsoft SDKs\Windows\v6.0\VC\LIB" miteingebunden neben dem Standartverzeichnis. Beim 2008er nur das Standartverzeichnis, also C:\Program Files\Microsoft Visual Studio 9.0\VC\lib.



  • sri schrieb:

    pressure schrieb:

    Du meinst Projekteigenschafften -> Linker -> Input -> Additional ...:
    "winmm.lib d3dx9.lib d3d9.lib"

    Nein, ich meine "Tools - Options" und dann "Projects and Solutions - VC Directories". Hier legt man zusätzliche Include- und Lib-Verzeichnisse fest.

    Die Lib und Includeverzeichnisse sind in Visual C++ 2008 Express wie am Anfang nur bei Lib ist am Ende: C:\Program Files\Microsoft DirectX SDK\Lib\x86 und bei Include ebenfalls am Ende: C:\Program Files\Microsoft DirectX SDK\Include.

    Daran solltes es nicht liegen.



  • Ich hab auf dem WindowsXP rechner auf dem es normalerweiße nich geht VisualStudios 2008 Express installiert und DirectX SDK und das Programm dort kompiliert.... und es geht. Die resultierende Exe-Datei funktioniert nun auch unter Vista.

    Woran zum Teufel kann das liegen ?


Log in to reply