QCoreAppliaktion in einer dll

Alles rund um die Programmierung mit Qt
Antworten
flownfluid
Beiträge: 80
Registriert: 6. Januar 2005 12:54

QCoreAppliaktion in einer dll

Beitrag von flownfluid »

Hallo Leute,

bis jetzt habe ich meine QT-Applikationen immer im main gestartet. Nun wird meine QCoreApplikation in einer lib aufgerufen und hier kann ich ja nicht die statische Methode exec() aufrufen.

Hat mir da jemand ein Lösungsvorschlag?

Vielen Dank
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

1. Warum muss die QCoreApplication in einer DLL gestartet werden?
2. Warum geht dann exec() nicht aufzurufen?
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
flownfluid
Beiträge: 80
Registriert: 6. Januar 2005 12:54

Beitrag von flownfluid »

Wir arbeiten an einem Projekt in der Schule, dort wird durch eine externes Prgramm, welches wir(Studenten) keinen Einfluss haben, eine Instanz meines Programmes kreiirt und dannach zyklisch eine Update Methode aufgerufen.

Nun da mein Programm mit QT und Signal/Slots benütze, brauche ich ja eine QCoreApp. Nun wenn ich die im Konstrukter kreiire und mit exec() starte, bleibt es ja im QT Eventloop hängen. Und somit wird ja die ganze Maschinerie von dem main- Programm gestopt.

Nun gibt es eine Möglichkeite dies irgendwie zu umgehen? Klar das einfachste wäre, wenn mir der Lehrer in seinem Programm schon ein QCoreApplikation starten würde. Aber so wie Lehrer halt sind, das möchte er einfach nicht. Wieso auch immer... :-(
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Sowas geht nicht bzw. nur sehr sehr umständlich. QCoreApplication muss das Hauptprogramm sein.
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
AuE
Beiträge: 918
Registriert: 5. August 2008 10:58

Beitrag von AuE »

Kann man nicht nen Thread starten? Der hat doch seine eigene Eventque oder?
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Ein Qt-Thread ohne laufende Main-Qt-Eventloop? Keine Ahnung...
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
MasterK
Beiträge: 24
Registriert: 10. November 2009 23:10

Beitrag von MasterK »

Wenn es nur um signals und slots geht, würden sich directconnections anbieten, die brauchen keine eventloop. Qt Threads haben keine eigene event loop. Man muss dann, wenn man in der DLL threads benutzt, die aufrufe selber synchronisieren.

Man könnte versuchen, in der DLL eine eigene Eventloop zu starten. Aber ob das den aufwand wert is... und dann is noch die frage, obs nicht probleme gibt wenn irgendwann doch mal eine qcoreapplication läuft.
flownfluid
Beiträge: 80
Registriert: 6. Januar 2005 12:54

Beitrag von flownfluid »

mir geht es eigentlich nur um die signal und slots... wie würde das mit den directconnections funktionieren?
MasterK
Beiträge: 24
Registriert: 10. November 2009 23:10

Beitrag von MasterK »

Na, einfach:

Code: Alles auswählen

QObject::connect(p1, SIGNAL(foo()), p2, SLOT(bar()), Qt:DirectConnection);
Antworten