stdout bei embedding in Windows-Anwendungen

Hallo,
ich erweitere gerade eine Windows-Anwendung (C++) durch embedding von Python-Aufrufen. Es scheint ein bekanntes Problem zu sein, dass diese Anwendungen sich sofort von der aufrufenden Konsole detachen, so dass jegliche Ausgabe an stdout (sowohl von C++ als auch von Python) im Nirwana verschwindet.
Ein Workaround scheint zu sein, sich eine Windows-Konsole anzufordern und stdout darauf umzuleiten:
AllocConsole(); freopen("conin$", "r", stdin); freopen("conout$", "w", stdout); freopen("conout$", "w", stderr);
Allerdings zeigt diese Konsole dann nur den Output meines C++-Programmes an und seltsamerweise nicht den der eingebetteten Python-Befehle.
Der Programmteil Py_Initialize(); std::cout << "start printing..." << std::endl; PyRun_SimpleString("print('PRINT')\n"); std::cout << "done printing." << std::endl; liefert lediglich die Ausgabe
start printing... done printing.
Weiss da jemand Rat?
Beste Gruesse und besten Dank,
Thomas Schreiner
participants (1)
-
Thomas Schreiner