向MFC应用程序添加控制台窗口
简介
如果你曾经写过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开始执行