MFC程序打开控制台
轉自:http://blog.csdn.NET/acaiacc/article/details/5543669
利用AllocConsole()??
在你的MFC程序中添加這些代碼,可以獲得控制臺的輸入,你試試?
AllocConsole();??
freopen("CONOUT$","w+t",stdout);??
freopen("CONIN$","r+t",stdin);??
cout << "Input:" <<endl;
int iTest = 0;
cin >> iTest;
fclose(stdout);
fclose(stdin);
FreeConsole();
afxDump << "Input Content:" << iTest << endl;
?
?
記住,及時在一個GUI程序中,你也可以有一個控制臺
好處:
1 不像窗口控件,依賴消息和重繪
2 程序飛掉了,控制臺還在
3 方便的重定向到文本,可以用比較工具比較
?
?
在某些時候,我們可能需要在Win32窗口應用程序中打開控制臺窗口,打印一些消息,或者作為當前程序的另外一個人機交互界面,或者為了幫助調試程序。為了達到這種效果,需要了解函數AllocConsole和C-Runtime的freopen函數。
AllocConsole函數會為當前的窗口程序申請一個Console窗口。這是MSDN上對AllocConsole的介紹:
AllocConsole
?
The?AllocConsole?function allocates a new console for the calling process.
BOOL?AllocConsole(void); 函數調用成功,返回非零值,調用不成功則返回0.
在為當前窗口程序申請到console后,我們需要調用C-Runtime的freopen函數將標準輸出(stdout)重定位到新申請的console。
freopen的原型如下:
???const?char?*path,
???const?char?*mode,
???FILE?*stream?
);
我們調用的時候是這么著傳入參數的:
freopen("CONOUT$","w",stdout); 其中"CONOUT$"是指代當前console的特殊字符串,"w"表明以written模式打開這個console,stdout指代的是系統的標準輸出設備。
下面是整個的代碼:
?{
??freopen("CONOUT$","w",stdout);
??printf("hello,?world!");
?}
總結
以上是生活随笔為你收集整理的MFC程序打开控制台的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 你必须了解的session的本质
- 下一篇: 利用IDA Pro反汇编程序