Qt Creator externe DLL einbinden



  • Hallo,

    wie wird in Qt Creator v3.3 (Qt v5.4) unter Windows eine externe DLL eingebunden?
    (Die DLL läuft problemlos mit MS Visual Studio in einem Windows MFC Projekt)

    Vorhanden:
    BeispielDLL.h
    BeispielDLL.lib
    BeispielDLL.dll

    Bisher habe ich über den Qt-Creator folgendes probiert:

    1. Im Qt-Creator Projektfenster auf den Projektnamen mit rechter Maustaste klicken. Dann im Menü auf "Bibliothek hinzufügen".

    2. In der folgenden Dialogbox auf "Externe Bibliothek".

    3. Im folgenden Dialog "Bibliothek" unter Bibliotheksdatei die "BeispielDLL.lib" (im Projektverzeichnis) auswählen. Der Include-Pfad wird daraufhin automatisch gesetzt. Unter Plattform nur Windows anklicken. Unter Linken: "dynamisch" auswählen. Mit "Weiter" bestätigen und danach "abschließen".

    Die "BeispielDLL.dll" liegt im Basisverzeichnis des Projekts und im "Debug" Unterverzeichnis.

    Rufe ich jedoch Funktionen aus der BeispielDLL.dll auf, kommen Linker Fehlermeldungen: "Verweis auf nicht aufgelöstes externes Symbol....".

    Alternativ habe ich die Projektdatei (*.pro) editiert:

    LIBS += "E:\BeispielProg\BeispielDLL.lib"

    oder

    LIBS += "E:\BeispielProg\BeispielDLL.dll"

    Alles leider ohne Erfolg. Weiß jemand wie es richtig geht?


  • Mod

    So binde ich cryptopp ein:

    INCLUDEPATH += D:/cpp/libraries/cryptopp562
    win32:CONFIG(release, debug|release): LIBS += D:/cpp/libraries/build-cryptopp562-Qt5_1-Release/release/libcryptopp562.a
    else:win32:CONFIG(debug, debug|release): LIBS += D:/cpp/libraries/build-cryptopp562-Qt5_1-Debug/debug/libcryptopp562.a
    

    Noch der Hinweis, dass du natürlich lib + exe mit der selben toolchain erstellen musst.



  • Danke phlox81 für die Antwort.

    Da ich gerade erst mit Qt anfange lag das Problem woanders. Ich arbeite unter Windows 7 64bit. Der Qt-Online-Installer hat deshalb Qt nur mit 64bit Compiler installiert - was mir nicht bewusst war.

    Die "BeispielDLL.dll" liegt jedoch nur in einer 32bit Version vor und ist damit nicht kompatibel zu einer 64bit Applikation.

    Jetzt funktioniert auch die Einbindung einer DLL über den Qt Creator sehr einfach:

    Vorhanden:
    BeispielDLL.h
    BeispielDLL.lib
    BeispielDLL.dll

    1. Im Qt-Creator Projektfenster auf den Projektnamen mit rechter Maustaste klicken. Dann im Menü auf "Bibliothek hinzufügen".

    2. In der sich öffnenden Dialogbox auf "Externe Bibliothek".

    3. Dann im folgenden Dialog unter Bibliotheksdatei die "BeispielDLL.lib" (im Projektverzeichnis) auswählen. Der Include-Pfad wird daraufhin automatisch gesetzt. Unter Plattform nur Windows anklicken. Unter Linken: "statisch" auswählen. Unter "Windows" im unteren Bereich der Dialogbox alle Checkboxen abwählen. Mit "Weiter" bestätigen und danach "abschließen".

    Qt Creator setzt damit die nötigen Eintragungen in der Projektdatei automatisch.

    Die "BeispielDLL.dll" habe ich zusätzlich noch in das Verzeichnis kopiert, in dem die fertige EXE-Datei liegt (ob das nötig ist, habe ich noch nicht getestet).

    Bingo!


Anmelden zum Antworten