0
我想用我的MFC應用程序寫入std::cerr
或std::cout
。在一個python腳本中,我稱這個應用程序,我想從stdout
或stderr
讀取。 兩者都不起作用。僅使用std::cout
就不會產生輸出。在AllocConsole()
之後,我至少能夠打印到調試控制檯。不幸的是,python網站上仍然沒有輸出。使用MFC寫入stdout並通過python讀取stdout Popen
在我的MFC應用程序初始化我一個控制檯來寫這個代碼:
void BindStdHandlesToConsole()
{
// Redirect the CRT standard input, output, and error handles to the console
freopen("CONIN$", "r", stdin);
freopen("CONOUT$", "w", stdout);
freopen("CONOUT$", "w", stderr);
std::wcout.clear();
std::cout.clear();
std::wcerr.clear();
std::cerr.clear();
std::wcin.clear();
std::cin.clear();
}
// initialization
BOOL foo::InitInstance()
{
// allocate a console
if (!AllocConsole())
AfxMessageBox("Failed to create the console!", MB_ICONEXCLAMATION);
else
BindStdHandlesToConsole();
蟒網站,我嘗試打印輸出。
process = subprocess.Popen(args,stdout=subprocess.PIPE,shell=True)
output = process.stdout.read()
process.wait()
有沒有辦法讓我的MFC程序真正寫入,並且Python腳本讀取標準輸出?
嘗試設置'標準錯誤= subprocess.PIPE'以及然後使用'(輸出,錯誤)= process.communicate()'沒有'read()'和'.wait()'。 – cdarke
仍然沒有輸出:( – dgrat
你測試輸出和錯誤嗎? – cdarke