Qt4 DLL mit Thread und Http Objekt in einer nicht Qt Appl.

Alles rund um die Programmierung mit Qt
Antworten
mbreitinger
Beiträge: 15
Registriert: 16. November 2005 11:00
Wohnort: Blaubeuren
Kontaktdaten:

Qt4 DLL mit Thread und Http Objekt in einer nicht Qt Appl.

Beitrag von mbreitinger »

Hallo,

ich will eine alte nicht Qt Anwendung mit einer DLL erweitern, welche ich mit Qt4.1.1 implementiert habe. Der Thread läuft und das Http Objekt wird angelegt, allerdings wird kein Event in dem exec()-Aufruf in der run()-Methode meines Threads abgearbeitet.

Was muß ich ändern? Bei dem Versuch eine QEventLoop zu verwenden, hat diese verlangt, daß ein QApplication Objekt existieren muß.
Dateianhänge
RehmProcessDataExchange.zip
Die DLL wird über die Funktionen in callfkt.h aufgerufen.
(19.55 KiB) 143-mal heruntergeladen
Shadow
Beiträge: 92
Registriert: 27. August 2005 18:15
Wohnort: Iserlohn
Kontaktdaten:

Re: Qt4 DLL mit Thread und Http Objekt in einer nicht Qt App

Beitrag von Shadow »

mbreitinger hat geschrieben:Hallo,

ich will eine alte nicht Qt Anwendung mit einer DLL erweitern, welche ich mit Qt4.1.1 implementiert habe. Der Thread läuft und das Http Objekt wird angelegt, allerdings wird kein Event in dem exec()-Aufruf in der run()-Methode meines Threads abgearbeitet.

Was muß ich ändern? Bei dem Versuch eine QEventLoop zu verwenden, hat diese verlangt, daß ein QApplication Objekt existieren muß.
Jede DLL hat ihre eigene Event-Schleife, insbesondere die QT-Plugins, daher bekommt deine Hauptapplikation auch nichts von dem Event mit. Dies wirst du auf dem Wege nicht lösen können. Vielleicht tut es das, indem du eine eine Funktion schreibst, die die Hauptapplikation benachrichtigt, bzw. dort den Event auslöst?!
mbreitinger
Beiträge: 15
Registriert: 16. November 2005 11:00
Wohnort: Blaubeuren
Kontaktdaten:

Lösung

Beitrag von mbreitinger »

Nach einigem Tüfteln habe ich herausgefunden, daß ich die Objekte, deren SLOTS im neuen Workerthread bearbeitet werden sollen, aus dem erzeugenden Thread heraus mit moveToThread in den Workerthread verschieben muß. Danach ist es egal wie die Anwendung geschrieben ist; die neue Erweiterung läuft komplett mit den Möglichkeiten von Qt.
Shadow
Beiträge: 92
Registriert: 27. August 2005 18:15
Wohnort: Iserlohn
Kontaktdaten:

Re: Lösung

Beitrag von Shadow »

mbreitinger hat geschrieben:Nach einigem Tüfteln habe ich herausgefunden, daß ich die Objekte, deren SLOTS im neuen Workerthread bearbeitet werden sollen, aus dem erzeugenden Thread heraus mit moveToThread in den Workerthread verschieben muß. Danach ist es egal wie die Anwendung geschrieben ist; die neue Erweiterung läuft komplett mit den Möglichkeiten von Qt.
Ok, ich habe das etwas falsch verstanden. Jetzt weiß ich, was du meintest.
Antworten