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:wWinMainCRTStartup" )//我用VS2005
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" )

PS如何改变Win32 Console 程序显示颜色

HANDLE hCon=GetStdHandle(STD_OUTPUT_HANDLE);
/*
STD_INPUT_HANDLE 标准输入的句柄 STD_OUTPUT_HANDLE 标准输出的句柄 STD_ERROR_HANDLE 标准错误的句柄 */
SetConsoleTextAttribute(hCon,ForeColor|BackGroundColor);
/*其文本与背景颜色可以是 FOREGROUND_BLUE, FOREGROUND_GREEN, FOREGROUND_RED, FOREGROUND_INTENSITY, BACKGROUND_BLUE, BACKGROUND_GREEN, BACKGROUND_RED, and BACKGROUND_INTENSITY*/

在MFC程序中增加控制台窗口相关推荐

  1. 在控制台程序中隐藏控制台窗口

    在控制台程序中隐藏控制台窗口 大家都知道,当编写一个win32 console application时,当运行此类程序的时候 默认情况下会有一个类似DOS窗口的console窗口,但是有的时候我们只 ...

  2. MFC应用程序中添加控制台窗口

    在MFC程序中输出调试信息的方法有两种,一种是使用TRACE宏,可以向Output窗口输出调试信息:另一种是用MessageBox,弹出消息框来输出调试信息,但会影响程序的运行. 其实有一种方法可以更 ...

  3. MFC应用程序中添加控制台窗口---debug输出窗口

    在MFC程序中输出调试信息的方法有两种,一种是使用TRACE宏,可以向Output窗口输出调试信息:另一种是用MessageBox,弹出消息框来输出调试信息,但会影响程序的运行. 其实有一种方法可以更 ...

  4. 在控制台程序中隐藏控制台窗口!

    大家都知道,当编写一个win32 console application时,当运行此类程序的时候 默认情况下会有一个类似DOS窗口的console窗口,但是有的时候我们只想在程序 中运行一段功能代码, ...

  5. qt 隐藏控制台_在控制台程序中隐藏控制台窗口

    大家都知道,当编写一个win32 console application时,当运行此类程序的时候 默认情况下会有一个类似DOS窗口的console窗口,但是有的时候我们只想在程序 中运行一段功能代码, ...

  6. 在MFC,Win32程序中向控制台(Console)窗口输出调试信息

    在MFC程序中输出调试信息的方法有两种,一种是使用TRACE宏,可以向Output窗口输出调试信息:另一种是用MessageBox,弹出消息框来输出调试信息,但会影响程序的运行. 其实有一种方法可以更 ...

  7. 给Win32 GUI程序增加控制台窗口的方法

    给Win32 GUI程序增加控制台窗口的方法 2008年10月11日 星期六 下午 04:43 在Win32的GUI程序中,没有控制台窗口,我们输出调试信息时有些不方便,以往我的做法是使用Messag ...

  8. 屏蔽基于对话框的MFC程序中按下ESC关闭窗口的功能

    在基于对话框的MFC程序中,如果你按下ESC,将会关闭对话框.如何屏蔽这个键呢,其实很简单,只要重载下PreTranslateMessage()即可. 方法:在对话框类上右击,选择"Add ...

  9. mfc 内嵌 本地html,MFC程序中内嵌网页,附示例工程

    最近在课程设计,因为小悠太懒了,是在不想用C++完成一些简单的文件上传下载操作,于是就想着将网页内嵌到程序中,上传下载神马的就直接使用网页Web来完成就好了,本示例中将演示在MFC程序中内嵌一个htm ...

最新文章

  1. csdn获取自己所有博客的地址,包含分页
  2. sql server 存储过程中使用变量表,临时表的分析(续)
  3. Python内置函数(62)——exec
  4. 产品新人没有完整项目经验?这篇文章帮你打开思路
  5. 斗地主AI算法——第十章の被动出牌(4)
  6. 用好SVG格式 让网站速度提升起来
  7. C语言——指针篇(二)指针和数组之内存分配和初始化
  8. 在server 2008R2组策略所有域计算机防火墙都处于更关闭状态
  9. CTF中PHP反序列化和命令注入的一次简单利用
  10. 电力系统微型计算机继电保护试题及答案,全国2010年4月高等教育自学考试电力系统微型计算机继电保护试题及答案...
  11. Excel报表的导出
  12. 单片机里程计量设计c语言,基于单片机的出租车计价器的里程计算设计
  13. AnyProxy抓包实践
  14. 无法连接至远程计算机 pubg,绝地求生无法连接到steam网络完美解决办法
  15. 王春亮推拿正骨与按摩心理学高级师传培训班
  16. 有效的回旋镖(2022-6-8)每日一练
  17. 44.驱动--设备树内的中断
  18. 【集成学习(上)】My_Task03掌握偏差与方差理论 笔记
  19. php 有关秒杀防止超卖面试题
  20. 本地安装Tomcat详细步骤

热门文章

  1. python人工智能是什么意思_Python人工智能之路 jieba gensim 最好别分家之最简单的相似度实现...
  2. <input type=“text“ name=““ id=““/>中的name和id有什么区别?
  3. burpsuite小米手机抓包_使用burpsuite实现Android APP的HTTPS抓包
  4. python小代码_Python爬虫入门有意思的小长代码
  5. truncate python是删除文件内容吗_在Python中操作文件之truncate()方法的使用教程
  6. Java 并发编程必须知道的七种锁类型以及应用
  7. andriod studio 查看项目依赖_如何实施CRM项目管理
  8. oracle10g数据库复制,oracle -10g 中Duplicate 复制数据库
  9. cad考试题库绘图题答案_2019年低压电工作业操作证考试最新版题库及答案(一)...
  10. poi的sax模式读取xls_POI SAX 如何修改大excel 文件内容-问答-阿里云开发者社区-阿里云...