Seite 1 von 1
plugin dlls werden unter absolutem Pfad gesucht ?
Verfasst: 7. November 2006 07:13
von noirabys
Hallo zusammen!
ich habe ein Programm erstellt das mysql benutzt und wollte dieses nun auf einem anderen Rechner (auch winxp) ausprobieren .
Alle libs in das Verzeichnis (aus dem das executable gestartet wurde) kopiert und erhalte die Fehlermeldung: Driver not loaded
Dann habe ich festgestellt, daß das ganze nur funktioniert wenn ich ein Verzeichnis mit dem gleichen absoluten Pfad anlege wie auf meinem Entwicklungs-PC. ( D:\qt\plugins\sqldrivers ) !
Wie kann man den Fehler beheben ?
Dann habe ich noch feststellen müssen das die GUI-Elemente alle andere Farben haben ?
Die Farben wurden durch
Form->setPalette(palette); eingestellt und erscheinen auf dem Entwicklungs PC auch richtig ?!
Ich bin ratlos.
Wie macht man den am besten eine Installation des eigenen Programms auf einem anderen Rechner ?
Ich hoffe jemand kann helfen
Vielen Dank und Grüße
noirabys
Verfasst: 7. November 2006 07:39
von Christian81
Wenn Dein Plugin in <executable-path>/sqldrivers liegt, sollte es auch gefunden werden. Ein Image-Plugin muss demnach unter <executable-path>/imageformats liegen. Also die gleichen Verzeichnisnamen wie in <qt-4-src>/plugins/
Beim anderen habe ich derzeit keine Ahnung.
funktioniert jetzt :)
Verfasst: 7. November 2006 07:50
von noirabys
Danke für die schnelle Antwort !
die libs werden dann gefunden ...
merci
Grüße
noirabys
Erscheinungsbild unter Winxp
Verfasst: 7. November 2006 11:58
von noirabys
Also es sieht so aus als würde er auf meinem Entwicklungsrechner
standardmässig den WindowsStyle nehmen und auf dem anderen Rechner den WindowsXpStyle.
Setzte ich den Style dann selber auf WindowsStyle nimmt er die Farbpalette , allerdings sieht das ganze immer noch nicht 100% wie auf
dem Entwicklungsrechner aus !?
Grüße
noirabys
Verfasst: 14. November 2006 15:47
von noirabys
Hallo nochmal !
ich habe jetzt versucht das ganze im Debug Modus zu bauen und erhalte nun wieder db open failed:Driver not loaded Driver not loaded
ich habe ein unterverzeichnis erstellt sqldrivers
und libmysql.dll und qsqlodbc.dll dort hingelegt und trotzdem scheint
er sie nicht zu finden !?
Benötigt man um das ganze im Debug Modus laufen lassen zu können auch eine debug version der libmysql.dll ? ( wo bekommt man diese her ?)
wäre nett wenn mir jemand helfen könnte, da mein Programm abschmiert und ich ohne die Debug-Version keine chance habe die Ursache herauszufinden!
Danke und Grüße
noirabys
Verfasst: 14. November 2006 16:14
von Christian81
Lösche mal vorsichtshalber HKCU\Software\Trolltech\OrganizationDefaults aus der Registry. Keine Angst, wird on demand neu aufgebaut. Wenn Du Dich dort etwas umsiehst findest Du ggf. auch deine zwei Dlls und den zughörigen Build-Key (der evtl. nicht passt, deshalb sollst Du es mal löschen)
Verfasst: 14. November 2006 16:46
von noirabys
hallo!
habe gerade deinen Vorschlag ausprobiert , aber keinen Unterschied bemerken können.
Die Registry EInträgen werden beim start sofort neu aufgebaut
und sehen identisch aus :
noch irgendwelche ideen !?
Verfasst: 14. November 2006 17:27
von Christian81
Qt 4.0.1 ? MSVC oder MinGW? Mit msvc kann es dort nicht gehen, geht erst wirklich korrekt mit dem letzten Patch für 4.2.x
Verfasst: 14. November 2006 17:34
von noirabys
Hallo nochmal !
ich compiliere mit mingw ...
grüße
noirabys
Verfasst: 14. November 2006 17:38
von Christian81
Nimm trotzdem nicht 4.0.1 sondern was aktuelles...
Verfasst: 16. November 2006 14:25
von noirabys
Hallo !
ich habe jetzt die 4.2.1 installiert.
Wenn ich nun die Debug version starte gibt mir die Console aus, dass er den ODBC treiber nicht laden könnte :
QSqlDatabase: QODBC driver not loaded
QSqlDatabase: available drivers: QSQLITE
und auch der mysql treiber wird nicht gelistet.
im unterverzeichnis sqldrivers liegen die Dateien:
libmysql.dll
qsqlite.dll
qsqlodbc.dll
Noch eine Idee was ich falsch mache ?
Verfasst: 16. November 2006 14:31
von Christian81
qsqlite.dll und qsqlodbc.dll müssen auch im Debug-Modus erstellt werden. Ansonsten werden sie nicht geladen. In der Registry siehst Du ja ob dies der Fall ist.
Verfasst: 17. November 2006 10:25
von patrik08
qt 4.2
Man kann die plug in auch statisch holen.... wen qt statisch kompiliert ist
eine exe mit allem drinnen ohne installer!
ich habe mac eine statisch und window eine shared und eine statich kompiliert qt4.2..... aber das unten geht bei mir nur unter mac...
window ist wie unter
http://wiki.qtcentre.org/index.php?titl ... on_Windows builded....
#include <QSqlDriverPlugin>
#include <QtPlugin>
Q_IMPORT_PLUGIN(qsqlite)
Q_IMPORT_PLUGIN(qsqlodbc)
/////pro file // QTPLUGIN += qsqlite qsqlodbc
Warum dass es nur unter mac funktioniert kann ich mich nicht erklahren .... dabei kosten window ja das doppelte... an plege wartung ecc...
http://doc.trolltech.com/4.2/qtplugin.html