AllocConsole();
freopen("CONOUT$", "w", stdout);
在MFC視窗程式中,上面兩句打開一個與程式關聯的控制臺視窗,并將cout輸出流重定向到控制臺
上面兩句代碼放在OnInitDialog()中,可以打開控制臺,cout,printf都正常輸出
if (m_consoleOpend)
{
HWND hconsole = GetConsoleWindow();
FreeConsole();
::PostMessage(hconsole, WM_CLOSE, 0, 0);
m_consoleOpend = false;
}
else
{
AllocConsole();
FILE* f = freopen("CONOUT$", "w", stdout);
if (f == NULL)
{
MessageBox("重定向失敗");
}
m_consoleOpend = true;
cout << "打開控制臺" << endl;
printf("open Console");
}
在界面中按鈕點擊事件中放入以上代碼,可以打開、關閉控制臺,printf可以正常輸出,cout不能輸出,if (f == NULL)為false;
如果先在OnInitDialog()打開控制臺,然后點擊按鈕關閉,再點擊按鈕打開,此時cout,printf都能輸出
為什么?怎樣才能點擊按鈕時cout也能輸出到控制臺?
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/273816.html
標籤:C++ 語言
上一篇:求各位大佬幫忙看一下,while和for陳述句都分別怎么寫,謝謝大佬!
下一篇:這段正則運算式為什么沒匹配到?
