日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

MFC程序打开控制台

發布時間:2023/12/2 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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的原型如下:

FILE?*freopen(?
???
const?char?*path,
???
const?char?*mode,
???FILE?
*stream?
);

我們調用的時候是這么著傳入參數的:

freopen("CONOUT$","w",stdout);

其中"CONOUT$"是指代當前console的特殊字符串,"w"表明以written模式打開這個console,stdout指代的是系統的標準輸出設備。


下面是整個的代碼:

if(AllocConsole())
?
{
??freopen(
"CONOUT$","w",stdout);
??printf(
"hello,?world!");
?}

總結

以上是生活随笔為你收集整理的MFC程序打开控制台的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。