Win32和MFC项目如何输出调试信息到VS的调试窗口
直接举例说明:
Win32项目:
#include <Windows.h> OutputDebugString(TEXT("调试信息:MyCircleImpl::~MyCircleImpl GETS CALLED!"));
MFC项目:
#include <afxwin.h> TRACE(_T("调试信息:MyCircleImpl::~MyCircleImpl GETS CALLED!"));
用法上,这两个的用法跟printf是一样的。
区别在于,TRACE是对OutputDebugString的封装,只有在DEBUG配置下才会起作用。(定义了_DEBUG宏),否则TRACE什么都不做(去afx.h查看TRACE的定义)。
OutputDebugString不受_DEBUG宏的控制,但是在没有debugger的情况下,OutputDebugString进入其内部后什么也不做直接return
所以如果是Win32项目,最好的做法如下:
Trace.h
#pragma once #include <Windows.h> #ifdef _DEBUG
#define TRACE OutputDebugString
#else
#define TRACE __noop // afx.h中如果没定义_DEBUG,TRACE就定义为__noop从而在Release配置下不会产生影响
#endif
client code:
#include "Trace.h" TRACE(TEXT("调试信息:MyCircleImpl::~MyCircleImpl GETS CALLED!\n"));
参考资料:
http://stackoverflow.com/questions/494653/how-can-i-use-the-trace-macro-in-non-mfc-projects
https://msdn.microsoft.com/en-us/library/s6btaxcs.aspx
http://bbs.csdn.net/topics/390482393
https://msdn.microsoft.com/en-us/library/windows/apps/aa363362(v=vs.85).aspx
Win32和MFC项目如何输出调试信息到VS的调试窗口的更多相关文章
- 华为荣耀8 android 让真机显示 DeBug Log调试信息 (真机调试时不显示 Logcat 日志的解决办法)
================================================================ 以下内容转载自: https://blog.csdn.net/aiko ...
- 如何在Go项目中输出版本信息?
我们经常在使用CLI工具的时候,都会有这样的参数输出: ``` ➜ ~ docker version Client: Docker Engine - Community Version: 18.09. ...
- [原]你知道怎么使用DebugView查看内核调试信息吗?
原总结注册表sysinternalsdebugviewprocess explorerprocess monitor 简介 DebugView是sysinternals工具集中的一款用来查看调试信息的 ...
- visual studio vs2010 vs2013 显示详细调试信息方法;vs debug 出错怎么办,你需要的不是答案,是方法。
显示详细的输出信息: 选项--项目和解决方案--生成并运行--MSBuild项目生成输出详细信息: 这样在输出目录就会显示详细的错误信息,可以自己分析了.
- Windows程序调试系列: 使用VC++生成调试信息 转
Windows程序调试系列: 使用VC++生成调试信息 ZhangTao,zhangtao.it@gmail.com, 译自 “Generating debug information with Vi ...
- 在MFC中,使用控制台Console输出调试信息
1.在MFC的应用类的InitInstance()函数里添加: AllocConsole(); 有时候需要调整这行代码在InitInstance函数的位置 2.继续添加以下代码 freopen(&qu ...
- MFC输出调试信息
刚学mfc时只知道用MessageBox输出,可是MessageBox只能输出字符串, 对于习惯于printf的我来说非常不便,后来查了一下mfc可以像printf一样输出, 就是TRACE这个宏,用 ...
- web项目 在visual studio 输出窗口显示调试信息
//始终显示 Trace.WriteLine(“要显示的调试信息”); //调试时显示 Debug.WriteLine(“要显示的调试信息”);
- 使用OutputDebugString输出调试信息
在编写控制台程序的时候我们经常会使用printf输出调试信息,使我们了解程序的状态,方便调试,但是当编写非控制台程序的时候这种方法就行不通了,那我们应该怎么办?上网查了一些方法,大致就如下几种 使用L ...
随机推荐
- HDU 1016 Prime Ring Problem(经典DFS+回溯)
Prime Ring Problem Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Other ...
- 【转载】jQuery插件开发精品教程,让你的jQuery提升一个台阶
要说jQuery 最成功的地方,我认为是它的可扩展性吸引了众多开发者为其开发插件,从而建立起了一个生态系统.这好比大公司们争相做平台一样,得平台者得天下.苹果,微软,谷歌等巨头,都有各自的平台及生态圈 ...
- netbeans使用技巧总结+快捷键大全
部分经常用的快捷键: 使用快捷键Alt+Enter显示修复错误的方法. 4.导航 a)Alt+Shift+O :转到类. b)Ctrl+Tab :在打开的源文件中进行切换. c)Alt+Right ...
- [ZZ] 在windows上编译Mesa3d opengl32库
在windows上编译Mesa3d opengl32库 cheungmine http://blog.csdn.net/ubuntu64fan/article/details/8061475 Mesa ...
- tunnel.p4
Tunneling: VXLAN and NVGRE (including L2/L3 Gateway), Geneve, GRE and IPinIP /* Copyright 2013-prese ...
- PHP 错误与异常 笔记与总结(4)通过 trigger_error 触发 PHP 错误
[错误抑制符@] 除了 php.ini 中 error_reporting 和 display_errors 的设置.error_reporting() 函数.ini_set() 函数 外,还可以使用 ...
- Grid组件 列头居中
在grdMain组件中的 class中设置“ x-grid-title-center ”
- js中json字符串转成js对象
json字符串转成js对象我所知的方法有2种: //json字符串转换成json对象 var str_json = "{name:'liuchuan'}"; //json字符串 / ...
- autowire异常的三个情况
2010-3-11 16:06:00 net.sf.ehcache.config.ConfigurationFactory parseConfiguration 警告: No configuratio ...
- 【Java 基础篇】【第六课】接口interface
Java提供的这个interface的语法,目的就是将接口从类中剥离出来,构成独立的主体. 首先加入我们定义了这个杯子接口: interface Cup { void addWater(int w); ...