stdout and embedding into Windows apps

Thomas Schreiner tmp-pythonlist at tschreiner.org
Wed Sep 19 08:17:30 EDT 2007


Hi,

I'm extending a windows application (C++) by embedding Python calls. It
seems to be a known problem that windows applications detach immediately
from the calling console, so that all output to stdout (from both C++
and Python) doesn't get shown anywhere.

A workaround seems to be the allocation of a windows console and
redirecting stdout to it:

   AllocConsole();
   freopen("conin$", "r", stdin);
   freopen("conout$", "w", stdout);
   freopen("conout$", "w", stderr);

Still, this console only shows the output of my C++ application, not the
output of the embedded python calls.

The following code
   Py_Initialize();
   std::cout << "start printing..." << std::endl;
   PyRun_SimpleString("print('PRINT')\n");
   std::cout << "done printing." << std::endl;

only prints

   start printing...
   done printing.

Does anybody know how to fix this issue? Basically I want to get an 
ipython console running in the background of my Windows app, so that I 
can process its data.


Cheers,


Thomas




More information about the Python-list mailing list