Plugins unter VC++ importieren

Alles rund um die Programmierung mit Qt
Antworten
mathies
Beiträge: 149
Registriert: 9. Februar 2007 17:50
Wohnort: Erfurt

Plugins unter VC++ importieren

Beitrag von mathies »

Hallo,

ich habe, wie schon öfters hier diskutiert, ein Problem mit *.jpg Bildern, wenn ich mein Programm in einem anderen Pfad starte als dem, wo die *.exe erstellt wurde. Mit *.png Dateien habe ich keine Probleme.

Ich habe jetzt schon die qjpeg4.lib mit eingebunden und die zugehörige *.dll in das Hauptverzeichnis meines Programms kopiert. Ohne Erfolg. Auch das ändern des Bibliothekspfads mit QApplication::addLibraryPath("./pfad"); oder QCoreApplication::addLibraryPath("./pfad"); brachte keine Änderung.

Eine *.pro Datei verwende ich bei meiner VC++ Umsetzung nicht. Nutze ich Q_IMPORT_PLUGIN(qjpeg) bekomme ich nicht aufgelöste Verweise.

Hat jemand noch eine Idee?

Danke,
Matthias
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Linkst du statisch oder dynamisch? Q_IMPORT_PLUGIN ist nur für statische Plugins nötig. Für dynamische Plugins ist nur dies nötig.
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
mathies
Beiträge: 149
Registriert: 9. Februar 2007 17:50
Wohnort: Erfurt

Beitrag von mathies »

Da ich die OpenSource Variante nicht explizit als statisch übersetzt habe, denke ich doch mal, dass ich alles dynamisch linke, auch wenn die Libs in dieser Version genau so groß sind wie die Dlls.
#include <QPictureFormatPlugin> hilft aber leider auch nicht :(

Fraglich ist für mich noch, warum alles funktioniert, wenn ich die *.exe direkt im Release Ordner starte?
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
mathies
Beiträge: 149
Registriert: 9. Februar 2007 17:50
Wohnort: Erfurt

Beitrag von mathies »

Ich dachte eigentlich, dass ich das hätte. Ich habe jetzt einfach mal pauschal alle Plugins ins Verzeichnis meines Programms kopiert und QCoreApplication::addLibraryPath(QCoreApplication::applicationDirPath());
gesetzt. Keine Änderung.

Hab ich jetzt was falsch verstanden in dem Text? :(
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

But where is the plugins directory? When the application is run, Qt will first treat the application's executable directory as the pluginsbase. For example if the application is in C:\Program Files\MyApp and has a style plugin, Qt will look in C:\Program Files\MyApp\styles
Außerdem hatten wir das hier schon zig mal.
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
mathies
Beiträge: 149
Registriert: 9. Februar 2007 17:50
Wohnort: Erfurt

Beitrag von mathies »

Ok, hab die Pfade überlesen die in der Tabelle standen, dann macht der Text natürlich bissl mehr Sinn. Funktioniert aber trotzdem nicht auch wenn ich die Plugins unter "../MyApp/pictureformats" habe.
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Ist ja auch kein QPictureFormatPlugin - zumal das beim Qt compilieren ja schon alles in den korrekten Verzeichnissen landet...
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
mathies
Beiträge: 149
Registriert: 9. Februar 2007 17:50
Wohnort: Erfurt

Beitrag von mathies »

Tschuldigung fürs nicht verstehen aber ich habe eigentlich schon alles durch, auch ../MyApp/imageformats mit #include <QImageIOPlugin>, keine Änderung. Funzt alles nur aus dem Release Ordner... :(
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Was soll ein "#include <QImageIOPlugin>" helfen?

Es funktioniert so wie es beschrieben ist. Wenn nicht -> Foren suche - wir hatten das Problem schon öfters.
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
mathies
Beiträge: 149
Registriert: 9. Februar 2007 17:50
Wohnort: Erfurt

Beitrag von mathies »

Ok, danke. In den bisherigen Einträgen im Forum wird das Problem mit zusätzlichen Einträgen in der *.pro Datei "gelöst". Da ich aber qmake nicht benutze ist diese Datei für mich nicht relevant, wie anfangs geschrieben.

Ich such weiter, danke nochmal.
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Was hat ein Image-Plugin mit der pro-Datei zu tun? Du kompilierst nicht dynamisch - das haben wir doch nun schon raus, oder?

http://doc.trolltech.com/4.3/deployment.html
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
mathies
Beiträge: 149
Registriert: 9. Februar 2007 17:50
Wohnort: Erfurt

Beitrag von mathies »

Wieso linke ich statisch wenn ich die *.dlls benutze? Ich brauche ja auch nur noch die *.dlls wenn ich das Programm auf einem Rechner ohne Qt laufen lassen will.

Hab Qt eben mal statisch übersetzt - wie vermutet nur noch *.libs, keine einzige *.dll mehr. Naja, trotzdem danke fürs antworten, arbeite ich halt nur mit png...
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Fehler von mir - es sollte heissen 'Du kompilierst nicht statisch'

Aber auch diesen Fall hatten wir hier schon und ist auch in den beiden Links, die ich gegeben habe, sehr gut beschrieben.
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
Antworten