Seite 1 von 1
qt-dll für MFC-Projekt
Verfasst: 19. Januar 2012 16:41
von Scary Hallo
Hallo,
ich muss ein Modul(dll) für ein größeres MFC-Projekt entwickeln. Die dll soll ein paar Funktionen exportieren und auch eine GUI haben. Weiß jemand, ob es eine schöne Beschreibung gibt?
Das ich als tamplate 'lib' angeben muss, habe ich gefunden.
Meine Fragen sind:
Wie schreibe ich Funktionen, die aus dem Hauptprogramm aufrufen kann?
Wie rufe ich dann diese Funktionen aus dem Hauptprogramm auf?
Gruß
Re: qt-dll für MFC-Projekt
Verfasst: 19. Januar 2012 17:07
von brax
Schau Dir mal in der MSDN die Doku zu __declspec( dllexport ) und __declspec( dllimport ) an :
http://msdn.microsoft.com/en-us/library/9h658af8.aspx und
http://msdn.microsoft.com/en-us/library/8fskxacy.aspx
Da wird es recht gut beschrieben. Es gibt noch eine andere Möglichkeit (über .def - Dateien), aber ich fand die immer sehr fummelig.
Re: qt-dll für MFC-Projekt
Verfasst: 19. Januar 2012 18:14
von Christian81
Qt Gui mit MFC mischen geht nicht so ohne weiteres da es dann keine QApplication gibt. Dafür gabs mal ein Qt-MFC - Toolkit aber keine Ahnung ob es das noch gibt.
Re: qt-dll für MFC-Projekt
Verfasst: 20. Januar 2012 09:29
von Scary Hallo
@brax: Danke schön. Werde ich mir gleich nachher einmal zu Gemüte führen.
@Christian81: Nur damit kein Missverständnis entsteht. Die dll soll eine eigenständige GUI haben. Es soll kein QImage auf ein MFC-Canvas gemalt werden oder so. Und das sollte funktionieren. Wir haben nämlich schon solches dll Modul. Allerdings von einer Fremdfirma programmieren lassen. Deshalb habe ich da keinen Einblick.
Re: qt-dll für MFC-Projekt
Verfasst: 20. Januar 2012 14:59
von Christian81
Das kann aber auch nur funktionieren wenn eine QApplication und die Qt-MFC - Integration vorhanden ist.
Re: qt-dll für MFC-Projekt
Verfasst: 24. Januar 2012 10:09
von RHBaum
Das kann aber auch nur funktionieren wenn eine QApplication und die Qt-MFC - Integration vorhanden ist.
Ne QApp muss es geben klar.
Aber die Qt-MFC migration ist auch kein Hexenwerk ... die macht nich mal sonderlich viel
Für sein Vorhaben brauch er sowas nichmal vermut ich.
Knackpunkt ist und bleibt die QApp hochzuziehen. Und das ist in ner Dll nicht trivial ...
DllMain muss das ding erzeugen und zerstören ...
Ist die Dll die einzige und wird nur einmal geladen, isses auch ned schwer ... aber hasst du mehrere dlls die sowas machen und die selbe qt version nutzen oder ziehst ne dll mehrmals an, wirds schon bissi kniffliger ...
und die absolute katastrophe ist, wenn das loadlibrary deiner Dll nicht im mainthread aufgerufen wird ... dann explodiert so ziemlich alles
Ciao ...
Re: qt-dll für MFC-Projekt
Verfasst: 24. Januar 2012 13:48
von Scary Hallo
@RHBaum: Ich kann die dll schon im mainthread laden. Daran soll es nicht liegen. Sind schon mehrere dll's die im Hauptprojekt geladen werden. Auf eine gemeinsame QT-Version kann man sich da schon einigen.
Ich glaube ich versuche es einmal. Danke an alle für die Hilfe.