| Store | Cart

[C++-sig] How to get output from python embedded in VC++

From: Jian <thec...@126.com>
Thu, 20 Jul 2017 11:25:33 +0800 (CST)
Dear Gurus,

I want to embed python interpreter in my program. What I want is to redirect those output to a control such as RICHEDIT which can be modified as a output window in my program. So I can write *.py files outside of program and invoke it inside program as a script file. In order to get information output by the *.py file I need to get the stdin&stdout. I have tried some workflow but not perfect.

1). I have tried use Allocconsle(). But I can only get the output info printed by std::out & printf() in the current code. all things which are printed by python35.dll are missing. I used print('xxxx') in the *.py file to test the output. Those *.py files are OK in command line mode.

2). I also tried to derive class basic_streambuf and overwrite the in/out functions. It works only for output from std::out. Text from printf() as well as from dlls are missing.

3). then I tried to use linker settings as below.

#pragma comment( linker, "/subsystem:console /entry:wWinMainCRTStartup" )

A cmd window is created along with the program. everything output from current process and dlls are retrieved successfully as I want. But the cmd window is not easy to control.

Is there a better way for this purpose? 

Thanks in advance for your kind help.

Best Regards,

John.
_______________________________________________
Cplusplus-sig mailing list
Cplu...@python.org
https://mail.python.org/mailman/listinfo/cplusplus-sig

Recent Messages in this Thread
Jian Jul 20, 2017 03:25 am
Stefan Seefeld Jul 20, 2017 02:34 pm
Jian Jul 21, 2017 02:03 pm
Stefan Seefeld Jul 21, 2017 02:15 pm
Horváth Imre István Jul 20, 2017 07:22 pm
Jian Jul 21, 2017 02:28 pm
Horváth Imre István Jul 21, 2017 03:13 pm
Jian Jul 22, 2017 03:17 am
Stefan Seefeld Jul 22, 2017 05:01 pm
Jian Jul 23, 2017 07:15 am
Stefan Seefeld Jul 23, 2017 03:06 pm
Jian Aug 01, 2017 02:33 am
Messages in this thread