stdout and embedding into Windows apps

T

Thomas Schreiner

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
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,770
Messages
2,569,584
Members
45,077
Latest member
SangMoor21

Latest Threads

Top