Seite 1 von 1

Mit QT aus DLL *.cpp und *.h generieren

Verfasst: 3. April 2006 17:07
von wedi
Hallo,

ich will eine DLL zu meinem Project hinzufühgen, aber habe weder Header noch Library für die DLL.
Das ist eine ActiveX DLL, die auch registriert ist. In VBA(Excel, Word) ist diese Activex-Komponente sichtbar. In MS VS6 und QT ist sie nicht sichtbar. In MS VS6 ist es einfach: im Klassenassistänt können aus einer DLL die *.cpp und *.h erstellt werden und dem Projekt zugefühgt.

Wie funktioniert das in QT? Wie kann eine Activex-Kommponente eingebunden werden?

Danke

Verfasst: 3. April 2006 17:32
von Christian81
Das hat zwar (meiner Meinung nach) rein garnichts mit Qt zu tun (sondern eher mit Wnidows-Programmierung), aber schau einfach mal hier:
http://msdn.microsoft.com/library/defau ... 4fe376.asp
http://msdn.microsoft.com/library/defau ... 4fe376.asp
Ist eigentlich ganz einfach, habe nur atm nichts gutes beim Suchen gefunden...

Re: Mit QT aus DLL *.cpp und *.h generieren

Verfasst: 4. April 2006 11:23
von Shadow
wedi hat geschrieben:Hallo,

ich will eine DLL zu meinem Project hinzufühgen, aber habe weder Header noch Library für die DLL.
Das ist eine ActiveX DLL, die auch registriert ist. In VBA(Excel, Word) ist diese Activex-Komponente sichtbar. In MS VS6 und QT ist sie nicht sichtbar. In MS VS6 ist es einfach: im Klassenassistänt können aus einer DLL die *.cpp und *.h erstellt werden und dem Projekt zugefühgt.

Wie funktioniert das in QT? Wie kann eine Activex-Kommponente eingebunden werden?

Danke
So schonmal gar nicht !! :)
Du verwendest bitte dafür ausschließlich QT-PlugIns und/oder QT-ActiveX DLL's, die mit der Version 4.xx eingeführt wurden.
Alles andere hat keinen Zweck und wird fehlschlagen, da der QPlugin-Loader keinen Einstiegspunkt in deiner DLL finden wird, der generiert wird, wenn du ein echtes QT-Plugin erzeugst. Genaugenommen generiert der MOC-Compiler enstprechende Einstiegspunkte dafür.
Zum anderen solltest du darauf achten, NUR DLL's zu verwenden, die mit der gleichen Version von QT wie die Hauptapplikation compiliert wurden, UND zum anderen im selben Modus, sprich: DEBUG oder RELEASE, UND benenne bitte die Erweiterung *.DLL nicht in irgendein Kürzel um. Dies wird ebenfalls vom QPluginLoader NICHT akzeptiert.
Dies sind harte Vorgaben von QT, allerdings ist dies auch nicht anders machbar, da man sonst das MOC-Konzept diesbezüglich über den Haufen schmeissen müsste und auch nicht so schön mit den ganzen Schnittstellen über qobject_cast<> arbeiten könnte, u.s.w, u.s.w....