Mit Visual C++ kompilierte Programme weitergeben
Mit Visual C++ kompilierte Programme weitergeben
Wieder mal was Windows-spezifisches
Folgendes Problem:
Ich habe ein C++-Programm geschrieben welches auch SDL verwendet. Also vom Code her ist das Programm systemunabhängig. g++ auf Ubuntu und BSD macht überhaupt keine Probleme. Das Programm wird mit MS Visual C++ 2008 kompiliert und funktioniert auch problemlos unter Vista (nach stundenlangem Herumprobieren...). Versuche ich es jedoch auf XP ohne Visual oder auf Vista ohne Visual kann das Programm nicht gestartet werden. Dabei habe ich den kompletten Projektordner kopiert. Die DLLs und alle anderen vom Programm benötigten Dateien liegen im Verzeichnis der .exe.
Windows behauptet jedoch, dass die Anwendungskonfiguration nicht korrekt ist und ich die Anwendung neu installieren soll (obwohl es ein einfaches Programm und keins mit Setup oder so ist). Die SDL-DLLs hab ich natürlich alle mitgegeben.
Ich schätze, dass das Problem durch den fehlenden Compiler (oder besser gesagt dessen fehlende Bibliotheken) verursacht wird. Ich hab schon ne ganze Weile versucht die Runtime-Libs (msvcr etc.) mitzugeben, aber das hat auch nichts gebracht. Wahrscheinlich habe ich die falschen oder nicht alle kopiert.
Kann mir jemand sagen welche DLLs ich mitgeben muss bzw. wo sonst der Fehler ist? Kann ich wenigstens die Visual-DLLs statisch linken? SDL macht ja keine Probleme.
Besten Dank im Voraus.
Folgendes Problem:
Ich habe ein C++-Programm geschrieben welches auch SDL verwendet. Also vom Code her ist das Programm systemunabhängig. g++ auf Ubuntu und BSD macht überhaupt keine Probleme. Das Programm wird mit MS Visual C++ 2008 kompiliert und funktioniert auch problemlos unter Vista (nach stundenlangem Herumprobieren...). Versuche ich es jedoch auf XP ohne Visual oder auf Vista ohne Visual kann das Programm nicht gestartet werden. Dabei habe ich den kompletten Projektordner kopiert. Die DLLs und alle anderen vom Programm benötigten Dateien liegen im Verzeichnis der .exe.
Windows behauptet jedoch, dass die Anwendungskonfiguration nicht korrekt ist und ich die Anwendung neu installieren soll (obwohl es ein einfaches Programm und keins mit Setup oder so ist). Die SDL-DLLs hab ich natürlich alle mitgegeben.
Ich schätze, dass das Problem durch den fehlenden Compiler (oder besser gesagt dessen fehlende Bibliotheken) verursacht wird. Ich hab schon ne ganze Weile versucht die Runtime-Libs (msvcr etc.) mitzugeben, aber das hat auch nichts gebracht. Wahrscheinlich habe ich die falschen oder nicht alle kopiert.
Kann mir jemand sagen welche DLLs ich mitgeben muss bzw. wo sonst der Fehler ist? Kann ich wenigstens die Visual-DLLs statisch linken? SDL macht ja keine Probleme.
Besten Dank im Voraus.
- Dirty Oerti
- Beiträge: 2229
- Registriert: Di Jul 08, 2008 5:05 pm
- Wohnort: Thurndorf / Würzburg
Re: Mit Visual C++ kompilierte Programme weitergeben
Also soweit ich weiß braucht man auf dem Windows, auf dem die Programme, die mit Visual compiliert wurden laufen sollen die sogenannten Visual C++ Executables (oder Redistribut...?)
Sowas in der Art auf jedenfall. Wie's genau heißt weiß ich jetzt nicht, wenn du aber nach OpenSceneGraph suchst und dort dann nach der Installationsanleitung für Windows kommst du daran nicht vorbei
Sowas in der Art auf jedenfall. Wie's genau heißt weiß ich jetzt nicht, wenn du aber nach OpenSceneGraph suchst und dort dann nach der Installationsanleitung für Windows kommst du daran nicht vorbei
Bei Fragen einfach an daniel[ät]proggen[Punkt]org
Ich helfe gerne!
----------
Wenn du ein Licht am Ende des Tunnels siehst, freu dich nicht zu früh! Es könnte ein Zug sein, der auf dich zukommt!
----
It said: "Install Win95 or better ..." So I installed Linux.
Ich helfe gerne!
----------
Wenn du ein Licht am Ende des Tunnels siehst, freu dich nicht zu früh! Es könnte ein Zug sein, der auf dich zukommt!
----
It said: "Install Win95 or better ..." So I installed Linux.
- Xin
- nur zu Besuch hier
- Beiträge: 8862
- Registriert: Fr Jul 04, 2008 11:10 pm
- Wohnort: /home/xin
- Kontaktdaten:
Re: Mit Visual C++ kompilierte Programme weitergeben
Du kannst von Microsoft den "Dependency Walker" herunterladen. Der sagt Dir welche DLLs Deine EXE benötigt und welche DLLs die DLLs benötigen. Und welche davon nicht gefunden werden.dani93 hat geschrieben:Kann mir jemand sagen welche DLLs ich mitgeben muss bzw. wo sonst der Fehler ist? Kann ich wenigstens die Visual-DLLs statisch linken? SDL macht ja keine Probleme.
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.
Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.
Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.
Re: Mit Visual C++ kompilierte Programme weitergeben
Da gibts einige Anleitungen. Ich nehme an du meinst die von der Homepage hier. Über mein Problem finde ich dort jedoch nichts.Dirty Oerti hat geschrieben:Wie's genau heißt weiß ich jetzt nicht, wenn du aber nach OpenSceneGraph suchst und dort dann nach der Installationsanleitung für Windows kommst du daran nicht vorbei
Wenn ich mein Programm damit starten will bekomme ich folgenden Fehler:Xin hat geschrieben:Du kannst von Microsoft den "Dependency Walker" herunterladen. Der sagt Dir welche DLLs Deine EXE benötigt und welche DLLs die DLLs benötigen. Und welche davon nicht gefunden werden.
Code: Alles auswählen
Error: The Side-by-Side configuration information for "c:\...\MEINPROGRAMM.EXE" contains errors. Diese Anwendung konnte nicht gestartet werden, weil die Anwenungskonfiguration nicht korrekt ist. Zur Problembehebung sollten Sie die Anwendung neu installieren (14001).
Warning: At least one module has an unresolved import due to a missing export function in a delay-load dependent module.
- Xin
- nur zu Besuch hier
- Beiträge: 8862
- Registriert: Fr Jul 04, 2008 11:10 pm
- Wohnort: /home/xin
- Kontaktdaten:
Re: Mit Visual C++ kompilierte Programme weitergeben
Moment.... das war eine böse Sache... da gibt's bei Google nicht viel zu, aber ich hatte den Fehler letztes Jahr auch und mich zu Tode gesucht.dani93 hat geschrieben:Wenn ich mein Programm damit starten will bekomme ich folgenden Fehler:Code: Alles auswählen
Error: The Side-by-Side configuration information for "c:\...\MEINPROGRAMM.EXE" contains errors. Diese Anwendung konnte nicht gestartet werden, weil die Anwenungskonfiguration nicht korrekt ist. Zur Problembehebung sollten Sie die Anwendung neu installieren (14001). Warning: At least one module has an unresolved import due to a missing export function in a delay-load dependent module.
Aber die Lösung war afair einfach: Das Manifest durfte nicht eingefügt werden.
Hier war das Problem, dass eine XP-Lib nicht auf Win2000 lief, wenn ich mich recht entsinne.
Du darfst diese DLLs iirc nicht weitergeben.dani93 hat geschrieben:Ich habe nach allen DLLs und deren Abhängigkeiten gesucht und die sind auch alle in D:\WINDOWS\System32\. Außer 2 (msvcp90d.dll, msvcr90d.dll) welche ich von Vista kopiert habe.
Das kann sein, z.B. wenn diese Vista-Abhängigkeiten haben, aber das glaube ich bei den beiden DLLs nicht.dani93 hat geschrieben:Kann es sein, dass XP einfach nicht mit den Vista-DLLs umgehen kann?
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.
Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.
Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.
- Dirty Oerti
- Beiträge: 2229
- Registriert: Di Jul 08, 2008 5:05 pm
- Wohnort: Thurndorf / Würzburg
Re: Mit Visual C++ kompilierte Programme weitergeben
Tag
Mir ging es hierrum:
http://www.openscenegraph.org/projects/ ... ioBinaries
Diese Visual C++ runtime Bibliotheken brauchst du nämlich, um irgendein mit Visual C++ kompiliertes Programm ausführen zu können
So zumindest meine Info^^
Mir ging es hierrum:
http://www.openscenegraph.org/projects/ ... ioBinaries
Diese Visual C++ runtime Bibliotheken brauchst du nämlich, um irgendein mit Visual C++ kompiliertes Programm ausführen zu können
So zumindest meine Info^^
Bei Fragen einfach an daniel[ät]proggen[Punkt]org
Ich helfe gerne!
----------
Wenn du ein Licht am Ende des Tunnels siehst, freu dich nicht zu früh! Es könnte ein Zug sein, der auf dich zukommt!
----
It said: "Install Win95 or better ..." So I installed Linux.
Ich helfe gerne!
----------
Wenn du ein Licht am Ende des Tunnels siehst, freu dich nicht zu früh! Es könnte ein Zug sein, der auf dich zukommt!
----
It said: "Install Win95 or better ..." So I installed Linux.
Re: Mit Visual C++ kompilierte Programme weitergeben
Löschen des Manifestes bringt auch nichts.Xin hat geschrieben:Aber die Lösung war afair einfach: Das Manifest durfte nicht eingefügt werden.
Das würde ich nicht sagen. Schließlich sind diese DLLs auch in der freien Express Edition dabei. Auch im Ordner "redist", der eigentlich genau mein Problem lösen sollte sind diese Dateien und ein Manifest. Ich habs schon mit den Dateien aus dem "redist"-Ordner versucht, mal mit Manifest, mal ohne. Immer noch mit der gleichen Fehlermeldung.Xin hat geschrieben:Du darfst diese DLLs iirc nicht weitergeben.
Aber dann muss doch jeder Benutzer dieses Programm installieren. Und genau das will ich verhindern ^^Dirty Oerti hat geschrieben: Mir ging es hierrum:
http://www.openscenegraph.org/projects/ ... ioBinaries
Diese Visual C++ runtime Bibliotheken brauchst du nämlich, um irgendein mit Visual C++ kompiliertes Programm ausführen zu können
Ich will eine .exe bei der ein Doppelklick zum Starten reicht.
- Dirty Oerti
- Beiträge: 2229
- Registriert: Di Jul 08, 2008 5:05 pm
- Wohnort: Thurndorf / Würzburg
Re: Mit Visual C++ kompilierte Programme weitergeben
Das hört sich für mich eben so an, als ob das nicht gehen würde. Außer du linkst sie statisch mit ein...The Visual Studio binaries require that you have either Visual Studio itself installed (the same version as the downloaded binaries) or the Visual C++ runtime for the appropriate platform/compiler combination.
http://board.gulli.com/thread/799332-vi ... ch-linken/
... was aber anscheinend nicht so wirklich funktioniert..?
Oder ganz ohne: http://www.ddj.com/windows/184416623
Bei Fragen einfach an daniel[ät]proggen[Punkt]org
Ich helfe gerne!
----------
Wenn du ein Licht am Ende des Tunnels siehst, freu dich nicht zu früh! Es könnte ein Zug sein, der auf dich zukommt!
----
It said: "Install Win95 or better ..." So I installed Linux.
Ich helfe gerne!
----------
Wenn du ein Licht am Ende des Tunnels siehst, freu dich nicht zu früh! Es könnte ein Zug sein, der auf dich zukommt!
----
It said: "Install Win95 or better ..." So I installed Linux.
- Xin
- nur zu Besuch hier
- Beiträge: 8862
- Registriert: Fr Jul 04, 2008 11:10 pm
- Wohnort: /home/xin
- Kontaktdaten:
Re: Mit Visual C++ kompilierte Programme weitergeben
Eigenschaften -> Manifesttool -> Eingabe und Ausgabe -> Manifest einbetten => Nein.dani93 hat geschrieben:Löschen des Manifestes bringt auch nichts.Xin hat geschrieben:Aber die Lösung war afair einfach: Das Manifest durfte nicht eingefügt werden.
Das war es - glaube ich.
Du darfst ausschließlich Funktionalität verwenden, die Du statisch eingebunden hast, ansonsten benötigst Du DLLs in Pfaden, die Deine Anwendungen finden kann - dafür müsste man sie wieder installieren.dani93 hat geschrieben:Aber dann muss doch jeder Benutzer dieses Programm installieren. Und genau das will ich verhindern ^^
Ich will eine .exe bei der ein Doppelklick zum Starten reicht.
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.
Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.
Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.
Re: Mit Visual C++ kompilierte Programme weitergeben
Ich gebs auf
Auch das ändern der Manifesteinstellungen hat nix gebracht.
Hab dann eben Mingw genommen, ist auch viel einfacher, da ich nicht jedes Mal ein (riesiges) Projekt erstellen muss
Und einen Thread zum Weitergeben von Mingw-Programmen hatten wir hier ja schon
Sollte es jemand hinbekommen wäre das einen FAQ-Eintrag wert.
Auch das ändern der Manifesteinstellungen hat nix gebracht.
Hab dann eben Mingw genommen, ist auch viel einfacher, da ich nicht jedes Mal ein (riesiges) Projekt erstellen muss
Und einen Thread zum Weitergeben von Mingw-Programmen hatten wir hier ja schon
Sollte es jemand hinbekommen wäre das einen FAQ-Eintrag wert.