Anwendung auf einem anderen Rechner zum Laufen bringen?

Alles rund um die Programmierung mit Qt
Antworten
wowa777
Beiträge: 5
Registriert: 31. März 2008 13:07

Anwendung auf einem anderen Rechner zum Laufen bringen?

Beitrag von wowa777 »

Ich habe ein Visual Studion 2005 C++ Projekt, was ich an einem anderen Rechner zum Laufen bringen möchte. Dafür benutze ich die Option "Setup-Projekt", was soweit ganz gut klappt und mir eine exe + msi Datei erstellt. Damit kann ich es schonmal auf dem anderen Rechner installieren. Mittlerweile lässt sich die Anwendung sogar ausführen und ich sehe meine GUI. Allerdings läuft das Programm nicht...

Beim Start bekomme ich u.a. folgende Meldungen:

Code: Alles auswählen

QMetaObject::connectSlotsByName: No matching signal for on_blabla_clicked (bool)
und

Code: Alles auswählen

Creating ModuleHandle failed
Da dieselbe Installation auf dem Entwicklungsrechner läuft, vermute ich, dass auf dem anderen Rechner noch irgendwas von Qt fehlt. Aber was? Ich hoffe, ihr könnt mir helfen.
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Der connectSlotsByName() - Fehler tritt hundertprozentig auch auf dem Entwicklungsrechner auf. Und beim anderen Fehler würde ich das auch vermuten, kann es aber nicht genau sagen da dies , denke ich, keine Qt-Fehlermeldung ist sondern von Deinem Programm kommt.
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
wowa777
Beiträge: 5
Registriert: 31. März 2008 13:07

Beitrag von wowa777 »

Du hast recht. Die erste Meldung tritt tatsächlich auch auf dem Entwicklungs-PC auf und die zweite ist eine selbstdefinierte. Sie erscheint im else-Zweig der Abfrage

Code: Alles auswählen

if(pluginHandle)
wobei dieses so definiert ist

Code: Alles auswählen

HMODULE pluginHandle = LoadLibraryA(pluginPath.c_str());
und pluginPath ein übergebener String-Parameter ist.
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Erstens benutzt man nicht LoadLibrary (und schon gar nicht LoadLibraryA inklusive unnötiges wandeln in einen std::string) sondern QLibrary und zweitens wird wohl der Pfad nicht passen.
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
wowa777
Beiträge: 5
Registriert: 31. März 2008 13:07

Beitrag von wowa777 »

Dieses Problem tritt auf dem Entwicklungsrechner jedoch nicht auf. Demnach müsste der Pfad doch passen, oder?

Das Programm stürzt übrigens auch auf dem Entwicklungsrechner ab, wenn man versucht, den eigentlichen Programmablauf anzustoßen. Es erscheint der Just-in-time-Debugger von VS und dann ist Schluss.... :evil:
wowa777
Beiträge: 5
Registriert: 31. März 2008 13:07

Beitrag von wowa777 »

Wie mache ich eigentlich Qt auf dem Zielrechner verfügbar? Was muss ich dafür vorher installieren oder meinem Setup-Projekt mitgeben? Irgendwelche dll's?
PeterLustig
Beiträge: 386
Registriert: 21. November 2007 20:07

Beitrag von PeterLustig »

Die Qt DLLs die du benutzt, und evtl. noch die benutzten Plugins.
wowa777
Beiträge: 5
Registriert: 31. März 2008 13:07

Beitrag von wowa777 »

Wie kann ich denn genau feststellen, welche Qt-dll's ich benutze? Reicht es, wenn ich die in den Ordner schmeiße, in dem sich auch die exe befinden wird?
PeterLustig
Beiträge: 386
Registriert: 21. November 2007 20:07

Beitrag von PeterLustig »

Na welche Libraries benutzt du denn? Abhängig davon sind die benötigten DLLs. Unter Windows müssen die DLLs unter einen von 3 möglichen Pfaden liegen:
1) Im System32 Verzeichnis
2) In einem Verzeichnis das in der PATH Variable steht
3) Im Auszuführenden Verzeichnis
Antworten