在MFC程序中增加控制台
2013-01-08 20:10
92 查看
在MFC程序中增加控制台
MFC程序中,如果想要输出调试信息,我们一般都是TRACE或者使用LOG文件,都不是很方便,第一个需要我们在调试状态下,第二个也要配置麻烦而且不直观。而使用Console来显示调试信息应该是更好的选择。下面介绍几种在MFC程序中,使用控制台来输出调试信息。1. 我们可以自己创建一个命令行窗口,在主程序的初始化的时候调用AllocConsole()函数。相应的退出的时候调用FreeConsole()
1 BOOL CMFCTestApp::InitInstance() 2 { 3 ... 4 #ifdef _DEBUG 5 AllocConsole(); 6 #endif 7 ... 8 CWinApp::InitInstance(); 9 }
此种方式下,输出函数需要使用_cprintf或者WriteConsole(GetStdHandle(STD_OUTPUT_HANDLE)...),其他的如cout,printf都不能输出到这里。当然,你可以自己封装一套调试函数。
2. 修改工程的配置信息,一般控制程序类型的是通过这两/SUBSYSTEM:WINDOWS来配置的,这个可以在工程属性/Linker/System/Subsystem这里看到,我们可以通过修改程序为console类型来使得程序显示命令行,但直接修改这个属性会提示链接错误,原因是不同类型的程序有不同的程序入口。这里使用简单的方式,直接在stdafx.h中添加一句
1 #ifdef _DEBUG 2 #pragma comment( linker, "/subsystem:console /entry:WinMainCRTStartup" )//我用VS2008 3 #endif
我们重新定义了系统类型和入口函数,这里面可以根据自己的需要任意组合。你可以参考你工程目前的属性信息,工程属性/Linker/Command Line,如下参考
#pragma comment( linker, "/subsystem:windows /entry:WinMainCRTStartup" )
#pragma comment( linker, "/subsystem:windows /entry:mainCRTStartup" )
#pragma comment( linker, "/subsystem:console /entry:mainCRTStartup" )
#pragma comment( linker, "/subsystem:console /entry:WinMainCRTStartup" )
相关文章推荐
- 在MFC程序中增加控制台
- 在MFC程序中增加控制台窗口
- 在MFC程序中增加控制台
- 在MFC程序中增加控制台
- MFC程序利用控制台输出调试信息
- 在MFC,Win32程序中向控制台(Console)窗口输出调试信息
- MFC窗体程序中添加调试控制台
- 如何在Win32 Console Application (Win32控制台)程序中使用MFC
- MFC程序中获得控制台的输入
- 给Win32 GUI程序增加控制台窗口的方法
- MFC窗体程序中添加调试控制台
- 在MFC程序中使用控制台
- 关于控制台程序下使用mfc库中的函数时断言
- 第七章 程序g分析和增加控制台和吐槽
- VC2010 MFC中实现printf调试功能,即MFC程序利用控制台输出调试信息。
- MFC窗体程序中添加调试控制台
- 在控制台程序中用MFC类
- win32控制台程序中,使用MFC的方法
- 在MFC程序中使用控制台输出打印信息
- MFC 程序启动控制台输出.日志