.dlls einbinden
-
Hallo zusammen!
Ich bin gerade dabei mit Visual C++ und GtKmm zu arbeiten. Auf meinem Rechner läuft alles soweit ganz gut und ein testprogramm was ein erstes fenster anzeigt wird ausgeführt.
Wenn ich das Programm allerdings auf anderen Rechnern laufen lassen will, findet er eine GtKmm....dll Datei nicht. (MFC und ATL wurden auf statisch gesetzt, Multithreaded ist eingestellt)
Ich habe die Gtkmm debug und release .vsprops unter "Eigenschaften" schon ins Projekt eingebunden.
Wie kann ich die benötigte .dll speichern / angeben dass sie auch bei der Ausführung auf anderen Rechnern vom eigentlichen Programm gefuden wird?
Danke euch!
-
Was hat denn MFC und ATL damit zu tun? Nichts!
Damit die gtkmm DLLs gefunden werden, müssen diese auf dem Ziel-PC installiert werden. Was sonst? Es gibt einen offiziellen gtkmm-Installer.
-
Also muss auf jedem PC auf dem ich mein Programm später laufen lassen will der gtkmm pack installiert werden - sehe ich das richtig?
Ich kann das nicht im Projekt irgendwie einbetten...
Das mit MFC und ATL habe ich von "normalen" Konsolen-Multithread-Programmen, mit nur einer .exe Datei - die ja so auf verschiedenen Rechnern laufen können ohne dort vorher was zu installieren...
Ich hab keine Ahnung von sowas...will einfach nur eine portable GUI mit ein bisschen Programm dahinter schreiben.
GtKmm ist die erste Oberfläche mit der es schnell und recht einfach funktioniert...jetzt gehts eben an die Portabilität.
-
Die MFC und ATL sind andere Libraries, die haben mit deinem gtkmm-Projekt nichts zutun. gtkmm ist schließlich sozusagen der Konkurrent zu den beiden.
Du hast zwei Möglichkeiten:
1. Der Anwender installiert sich das gtkmm-Paket über den offiziellen Installer. Den Installer kann man ja trotzdem dem Anwender anbieten oder auf die CD mitgeben. Wer Internet hat, kann das über einen Link runter laden (den du natürlich dem Anwender nennen mußt). Der Endanwender benötigt übrigens nicht die devel-Installer (die sind ja nur für Developer). Der User-Installer ist ja viel kleiner.2. Du legst die ganzen DLLs in das Verzeichnis, in der deine EXE liegt. Wie das gemacht wird, wird sicherlich auch in der gtkmm-Doku beschrieben:
http://live.gnome.org/gtkmm/MSWindows#head-852bee9f60cac079f3d51104601b98e8e78af505Ich sehe im 2. Punkt keinen Vorteil, außer das der Anwender keine Admin-Rechte für die Installation benötigt.
Pers. bevorzuge ich meistens den 1. Weg. Denn wenn man ein DirectX-Spiel entwickelt, installiert sich der Anwender das DX auch über einen Installer.
-
Stimmt, da hast du Recht - ich denke der erste Weg ist der bessere und v.a. der transparentere.
Danke für die Tips!!
-
An was kann es denn noch liegen wenn das Programm auch auf anderen Rechnern nicht läuft, obwohl dort gtkmm installiert ist?
-
Na, ne Fehlermeldung wäre schon ganz cool. Ne Glaskugel hat hier leider (noch) niemand!
-
hehe - sorry:
Die Anwendung konnte nicht richtig initialisiert werden (0xc0150002)...
-
Hem, also diese Meldung kenne ich nicht. Hätte jetzt auf eine andere bekanntere getippt, die hat aber einen anderen Wortlaut. Aber jede Suchmaschine bringt mögliche Lösungen, wenn man dort die Fehlermeldung eingibt:
http://ixquick.com/do/metasearch.pl?query="Die+Anwendung+konnte+nicht+richtig+initialisiert+werden"&cat=web&pl=ff&language=deutschEs scheint wohl an einem Virenscanner zu liegen, der die Anwendung daran hindert korrekt zu laufen. Der Anwender soll mal den Virenscanner kurzzeitig ausschalten (natürlich nur für einen Test) oder die Anwendung als vertrauenswürdig eintragen. Oder laut MS kann es auch an einem Service Pack von WinXP liegen.
Würde deine Anwendung einfach mal auf einem dritten PC ausprobieren (der ne andere Software drauf hat).