簡介
如果你曾經寫過MFC應用程序,也許你忽略了控制台窗口。熟悉了控制台窗口的人會認為它是如此的便捷,我就是一個,認為printf或者cout是最優秀的調試函數,可以在不打開任務管理器的情況下在控制台中僅僅按下CTRL+C來結束不響應的程序。不幸的是,MFC應用程序默認情況下並不支持控制台。但是在你的應用程序加入一小段代碼后,然后改變連接選項你就可以解決這個問題
l 對於Visual Studio .NET
l 對於 Visual Stduio 98 (Visual C++ 6.0)
l 它是如何工作的?
對於Visual Studio .NET
請根據下面的步驟做:
1. 復制以下代碼保存為"mfcconsole.cpp",在Visual Studio .NET選擇"Project"菜單的"Add Existing Item",把"mfcconsole.cpp"加進來
#include "stdafx.h"
#include <stdio.h>
#include <windows.h>
extern "C"
{
int PASCAL WinMain(HINSTANCE inst,HINSTANCE dumb,LPSTR param,int show);
};
int main(int ac,char *av[])
{
char buf[256];
int i;
HINSTANCE inst;
inst=(HINSTANCE)GetModuleHandle(NULL);
buf[0]=0;
for(i=1; i<ac; i++)
{
strcat(buf,av[i]);
strcat(buf," ");
}
return WinMain(inst,NULL,buf,SW_SHOWNORMAL);
}
2. 有時不知什么原因vs不編譯某些已包含的文件,這個時候,選擇"Solution Explorer"屬性頁,然后右鍵單擊"mfcconsole.cpp"文件選擇"Property",按下面的圖解設置

3. 在 "Solution Explorer" 屬性頁選擇項目名字,右鍵屬性,設置如下

編譯一下看看效果o(∩_∩)o…,如果你想刪除控制台,你只需要將上圖的SubSystem恢復至/SUBSYSTEM:WINDOWS
對於 Visual Stduio 98 (Visual C++ 6.0)
Here's how to add a printf-able console window to your MFC application.
1. 同.net的(1)
2. 右鍵單擊mfcconsole.cpp文件,選擇” Setting”,設置如下圖:

3. 在項目菜單中點擊設置,設置如下圖,將"/subsystem:windows"改為"/subsystem:console"

它是如何工作的
連接選項"/subsystem:*****"控制程序是否有一個控制台窗口,
l 如果是"/subsystem:console":程序啟動控制台,從main函數開始執行
l 如果是"/subsystem:windows":不啟動控制台,從WinMain開始執行
三、
#include <io.h>
#include <fcntl.h>
#include <io.h>
#include <fcntl.h>
void OpenConsole()
{
AllocConsole();
HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE);
int hCrt = _open_osfhandle((long)handle,_O_TEXT);
FILE * hf = _fdopen( hCrt, "w" );
*stdout = *hf;
}
添加CXXApp為成員函數
InitInstance調用OpenConsole();
就可以調出Console用print輸出了
