qt.conf erstellen und benutzen in Qt bzw. in Visual Studio mit Qt Plugin



  • Nein musst du nicht.
    Lies die Docu dazu: http://doc.qt.io/qt-5/qt-conf.html
    da steht alles drinn für deine Frage



  • Für diese Application brauche ich folgende Plugins:

    1)plattforms
    -->qwindows.dll
    2)sqldrivers
    -->qsqlodbc.dll

    Wie soll ich bitte qt.conf erstellen?

    Danke



  • laut die Documentation muss ich nur eine qt.conf erstellen.
    Codemässig muss ich nichts machen.

    Also für meine Application muss der qt.conf so ausehen:

    [Paths]
     Plugins = plugins
    

    Dazu muss ich einen ordner mit der Name "plugins" erstellen.
    Der Ordner plugins sieht dann so aus:
    plugins
    plattforms (Unterordner)
    -->qwindows.dll (Inhalt)
    sqldrivers (Unterordner)
    -->qsqlodbc.dll (Inhalt)

    Wenn ich aber daraus einen Installer erstelle und die Application starte bekomme ich folgende Fehlermeldung:
    "The Application failed to start because it could not find or load the Qt plattform plugin "windows" in " ".
    Reinstalling the application may fix this problem.

    Die Fehlermeldung sagte, dass diese DLL "qwindows.dll" nicht zu finden sei.
    Was mache ich falsch?



  • Hi Leute,

    egal wie ich das tue mit qt.conf oder ohne aber
    mit

    QCoreApplication::addLibraryPath(MyPlugInPath)
    

    Es bringt nichts.
    Ich bekomme stets die beschriebene Fehlermeldung, dass der "qwindows.dll" nicht zu finden sei.
    Wenn ich aber die Ornderstruktur der Entwcklungsrechner einfüge, dann geht.

    Ich verstehe es nicht wie soll ich diese verdammt Plugins in der App einfüge
    😡



  • Es geht also auf der Entwicklungsumgebung, aber nicht nach Release?

    Das klingt, als ob dein Installer die DLL nicht mit kopiert, oder an eine falsche Stelle kopiert. Am einfachsten ist es, wenn die DLL im selben Ordner liegt wie die auszuführende Datei.



  • Hast du bereits alles probiert was google zu der Fehlermeldung ausspuckt?

    Nr. 1
    Nr. 2
    Nr. 3

    etc. etc.



  • Schlangenmensch schrieb:

    Es geht also auf der Entwicklungsumgebung, aber nicht nach Release?

    Das klingt, als ob dein Installer die DLL nicht mit kopiert, oder an eine falsche Stelle kopiert..

    Der Installer tut schon was er tun muss sprich die DLLs mitkopieren in der vorgesehen Pfad.

    Schlangenmensch schrieb:

    Am einfachsten ist es, wenn die DLL im selben Ordner liegt wie die auszuführende Datei.

    Eben nicht. Wenn es um einen Plugin sich handelt, dann muss es einen bestimmten Ordnerstruktur verfolgt werden und dort der entsprechen DLL Library einfügen.



  • Cardiac schrieb:

    Hast du bereits alles probiert was google zu der Fehlermeldung ausspuckt?

    Nr. 1
    Nr. 2
    Nr. 3

    etc. etc.

    nochmal zitiert, weil sich die Lösung wahrscheinlich darunter befindet.

    Ein paar Anmerkungen noch:
    - Der standard Name des Ornders ist: platforms (nicht plattforms).
    - Sicher, dass du die richtige DLL kopierst? Es gibt häufig verschiedene Versionen von DLLs. Der QT Creator verwendet die richtige, aber wenn einen Installer verwendest, musst musst du selbst dafür sorgen. (siehe z.B. 3. Link von Cardiac)



  • Optional einfach ein vernuenftiges OS verwenden, ich hatte mit Qt noch nie derartige Probleme...



  • Schlangenmensch schrieb:

    nochmal zitiert, weil sich die Lösung wahrscheinlich darunter befindet.

    Ein paar Anmerkungen noch:
    - Der standard Name des Ornders ist: platforms (nicht plattforms).
    - Sicher, dass du die richtige DLL kopierst? Es gibt häufig verschiedene Versionen von DLLs.(siehe z.B. 3. Link von Cardiac)

    Das habe ich schon angepasst.
    Es hat aber nichts gebracht.

    Schlangenmensch schrieb:

    Der QT Creator verwendet die richtige, aber wenn einen Installer verwendest, musst musst du selbst dafür sorgen.

    Das tue ich auch.
    Wenn der Installer installiert ist, dann kann ich auch direkt nachsehen, ob es alle DLLs mitinstalliert sind und das passiert schon mal.

    Problem ist nur bei DLLs Librarys, obwohl ich explizit in der main() Funktionen schon tue.

    QCoreApplication::addLibraryPath(MyPlugInPath);
    

Anmelden zum Antworten