在MFC程序中使用控制台

编写MFC程序时,使用edit控件可以实时显示变量的值,但有时在调试中,还是喜欢使用控制台print的方法。今天参考了http://www.cnblogs.com/gadfly/archive/2010/10/02/1841197.html文章中提到的方法,成功地把console window加入到MFC程序中。以下是具体方法:

1.我们可以自己创建一个命令行窗口,在主程序的初始化的时候调用AllocConsole()函数。相应的退出的时候调用FreeConsole():

BOOL CMFCTestApp::InitInstance()
 {
     ...
 #ifdef _DEBUG
     AllocConsole();
  #endif
     ...
     CWinApp::InitInstance();
 }




这里有一个问题是:FreeConsole()这个函数在哪里添加?

此外,原文中提到需要使用_cprintf()来把信息输出到console上,可是我在实际使用中,使用std::cout和printf都可以输出console。另外_cprintf不知道是在哪个header里的函数。

2. 修改工程的配置信息,一般控制程序类型的是通过这两/SUBSYSTEM:WINDOWS来配置的,这个可以在工程属性/Linker/System/Subsystem这里看到,我们可以通过修改程序为console类型来使得程序显示命令行,但直接修改这个属性会提示链接错误,原因是不同类型的程序有不同的程序入口。这里使用简单的方式,直接在stdafx.h中添加一句:

#ifdef _DEBUG
 #pragma comment( linker, "/subsystem:console /entry:wWinMainCRTStartup" )//我用VS2010
 #endif

这样我们就可以把想观察的信息输出到console上了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值