Seite 1 von 1

Excel in separaten Thread nutzen

Verfasst: 13. Oktober 2010 13:08
von mc.george
Hi,

ich habe neben dem GUI Hauptthread einen weiteren separaten Thread, in dem ich Funktionalität von der GUI entkoppelt ausführe. Unter anderem sollen in diesem Daten in MS Excel Dateien kopiert werden.

Jetzt habe ich das Problem, dass dies aus dem Thread heraus nicht funktioniert (hingegen aus dem GUI Thread aber). Wenn ich mich recht erinnere, dann musste man (in Python habe ich das schon einmal gemacht) die Funktion CoInitialize und CoUninitialize ausführen.

Gibt es sowas in QT / C++ auch?

Danke
george

Verfasst: 13. Oktober 2010 13:16
von franzf
Leider verrätst du uns nichts über deinen bisherigen Ansatz. Wie "kopierst du Daten in eine Excel Datei"? Startest du EXCEL via QProcess? Verwendest du eine lib? Eigener Ansatz?
Und "funktioniert nicht" ist keine Fehlerbeschreibung, mit der man helfen könnte.
Bekommst du irgendwelche hilfreichen Asugaben auf der Konsole? (CONFIG += console im .pro ist dazu notwendig).
Wie startest du deinen Thread? Was machst du in dem Thread jetzt genau? Wie kommunizierst du mit dem Thread?

Am besten postest du ein kompilierbares Minimalbeispiel, dann kann man sehen was verkehrt läuft.

Verfasst: 13. Oktober 2010 13:23
von mc.george
Hi franzf,

sorry, du hast Recht. Waren wenige Angaben.

Ich benutze die COM Schnittstelle:

Code: Alles auswählen

new QAxObject("Excel.Application");
ich bin bei der Lösung des Problems schon in einem anderen Forum fündig geworden. Man muss die "windows.h" einbinden und muss dann

Code: Alles auswählen

CoInitialize(NULL);

...

CoUninitialize();
aufrufen. Dann funktioniert es.

Danke noch einmal für deine Mühe.
george