EXE nicht ausführbar trotz Redistributable



  • Hallo,

    ich habe unter der Visual C++ Express Edition 2009 zwei kleine Programmteile als DLL realisiert und diese in ein LabVIEW 8.5 VI eingebunden. Anschließend habe ich aus dem fertigen LabVIEW Programm eine EXE Datei erstellt, diese dann in einen Installergesteckt und dort noch die aktuelle Redistributable zu der Visual C++ Express Edition eingebaut die dann mit installiert wird.

    Bedauerlicherweise ist dann die Exe auf dem Zielrechner jedoch nicht ausführbar. Installiere ich die komplette Visual C++ Express Edition werden die beiden DLLs anscheinend gefunden und es funktioniert.
    Ich las hier bereits, dass eine Debug DLL wohl alleine mit der Redistributable wohl nicht ausführbar wäre, das ist wohl ein fehler gewesen, jedoch führen die eingebundenen Release DLLs zu genau dem gleichen Fehler.
    An anderer Stelle las ich, dass man unter Projekt Eigenschaften-->Konfigurationseigenschaften-->Linker-->Manifestdatei->Manifest generieren auf "Ja" stellen muss. Das war allerdings bereits geschehen und bringt folglich auch nichts.
    Somit komme ich nicht umher nochmals einen speraten Thread aufzumachen und hoffe, dass mir bei diesem Problem geholfen werden kann.



  • Benutze doch mal den Dependency Walker um herauszufinden, ob wirklich alle abhängigen DLL's gefunden werden.
    http://www.dependencywalker.com/

    Simon

    Edit: Das musst Du natürlich auf dem Zielrechner untersuchen.



  • Probier mal noch folgender Schalter aus (sollte meiner Meinung nach auf Yes stehen):
    Project Settings > Configuration Properties > Manifest Tool > Input and Output > Embedd Manifest

    Sorry, habe nur die engl. Version.

    Simon



  • Zuerst einmal danke für die schnellen Antworten.

    Ich kann nicht sagen, dass ich schon einmal mit dem DependencyWalker wirklich gearbeitet habe aber durch einw enig rumprobieren kam immerhin das Ergebnis heraus, dass er wohl folgende drei DLLs nicht findet:

    DWMAPI.DLL
    IBFS32.DLL
    NIIMAQMEM.DLL

    Wenn ich die .exe starte bringt diese übrigens die Fehlermeldung heraus, dass meine selbst eingebundenen dLLs nicht gefunden werden können. Der genaue Wortlaut dieser Fehlermeldung ist:

    Fehlende externe Funktion MovingAverage.dll:MovingAverage:C in VI RAC FlowOxy IMAQdx V1.vi
    Fehlende externe Funktion KontrastC.dll:KontrastC:C in VI RAC FlowOxy IMAQdx V1.vi

    Der angegebene Schalter stand bereits auf "ja". Die englischen Bezeichnungen waren kein Problem, das konnte man doch ganz gut nachvollziehen.


Anmelden zum Antworten