前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >VC调试时输出调试信息到Debug窗口

VC调试时输出调试信息到Debug窗口

作者头像
战神伽罗
发布于 2019-07-24 07:09:54
发布于 2019-07-24 07:09:54
1.8K00
代码可运行
举报
运行总次数:0
代码可运行

TRACE宏(afx.h, AfxTrace) (TRACE将信息输出到afxDump对象,只在_DEBUG定义时输出,最多输出512个字符,格式化与printf类似) afxDump对象(afx.h, CDumpContext) (afxDump调用OutputDebugString把信息输出到Debug窗口,继承CObject的类可以重载Dump方法格式化此类的Dump信息,输出时把afxDump作为Dump方法的参数) OutputDebugString(windows.h) (TRACE, afxDump在使用MFC时使用,不使用MFC时可以用OutputDebugString,AfxOutputDebugString和OutputDebugString用法一样)

用法示例:

代码语言:javascript
代码运行次数:0
运行
复制
  1. int nCount = 9;
  2. CString strDesc("total");
  3. TRACE("Count = %d, Description = %s\n", nCount, strDesc);
  4. #ifdef _DEBUG
  5. afxDump << "Count = " << nCount
  6. << ", Description = " << strDesc << "\n";
  7. #endif // _DEBUG
  8. #ifdef _DEBUG
  9. char strErr[512];
  10. sprintf(strErr, "Count = %d, Description = %s\n", nCount, strDesc);
  11. OutputDebugString()strErr;
  12. #endif // _DEBUG
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
ASSERT_VALID和ASSERT宏分析[通俗易懂]
ASSERT_VALID宏用来在运行时检查一个对象的内部合法性,比如说现在有一个学生对象,我们知道每个学生的年龄一定大于零,若年龄小于零,则该学生对象肯定有问题。
全栈程序员站长
2022/10/04
9160
debugview使用方法_debugger怎么用
可以捕获程序中由 TRACE()和 OutputDebugString()输出的信息。说的具体一点,在程序中使用如下函数:
全栈程序员站长
2022/11/17
1.7K0
debugview使用方法_debugger怎么用
VC中Debug和Release出错的问题解决办法
1.变量未初始化。下面的程序在debug中运行的很好。 thing * search(thing * something) BOOL found; for(int i = 0; i < whatever.GetSize(); i++) { if(whatever[i]->field == something->field) { /* found it */ found = TRUE; break; } /* found it */ } if(found) return whatever[i]; else return NULL; 而在release中却不行,因为debug中会自动给变量初始化found=FALSE,而在release版中则不会。所以尽可能的给变量、类或结构初始化。
sofu456
2019/07/09
1.1K0
【编程基础】Win32窗口下调试输出
在Win32的console下,我们可以用基本的printf,来输出调试信息,这个很方便。不过要是在非console的窗口模式应用程序里面,就不能使用printf来输出,很多朋友遇到过这个问题,非常不方面。 其实在窗口模式下,windows提供了一个函数OutputDebugString,用于向开发环境的debug窗口输出信息,结合C语言的可变参数,就能实现跟printf一样的功能了,下面就是一个简单的采用OutputDebugString封装的调试输出函数,用法跟printf一样: #include <
程序员互动联盟
2018/03/13
1.9K0
MFC原理第三讲.RTTI运行时类型识别
    RTTI. 运行时的时候类型的识别. 运行时类型信息程序.能够使用基类(父类)指针 或者引用 来检查这些指针或者引用所指的对象. 实际派生的类型
IBinary
2019/05/25
1.4K0
窗口分割
我们在使用OutLook或者NetAnt等工具的时候,一般都会被其复杂的界面所吸引,在这些界面中窗口被分割为若干的区域,真正做到了窗口的任意分割。 那么我们自己如何创建类似的界面,也实现窗口的任意的分割呢?要解决这个问题,在Visual C++6.0编程中就需要使用到MFC提供的CSplitterWnd类。CSplitterWnd看上去像是一种特殊的框架窗口,每个窗口都被相同的或者不同的视图所填充。当窗口被切分后用户可以使用鼠标移动切分条来调整窗口的相对尺寸。虽然VC6.0支持从AppWizard中创建分割窗口,但是自动加入的分割条总是不能让我们满意,因此我们还是通过手工增加代码来熟悉这个类。本实例采用多模板模式,即实现了窗口的任意分割,又介绍了各个视图如何相互通信。程序编译运行后的界面效果如图一所示:
全栈程序员站长
2022/07/18
8370
VC Windows API获得桌面所有窗口句柄的方法
VC Windows API应用之GetDesktopWindow ——获得桌面所有窗口句柄的方法
全栈程序员站长
2022/07/15
1.9K0
C++学习总结4——类型转换
在写程序的时候有时会遇到类型转换的问题,而这些问题的解答每次都记不住,每次都得上网查找,经常下来,也觉得很浪费时间。所以这里我把C语言和C++里面一些常用的类型转换方式写下来,一方面为了以后查找方便,另一方面也是希望通过敲一遍能尽可能地记住转换的思路。所有这些转换的代码我已经放到了github上,或许可以帮到你。
王云峰
2019/12/25
9770
MFC 调用静态链接 MFC 的规则 DLL
最近学习了生成静态链接的dll及其调用,写一下笔录和大家分享,有错误的地方欢迎大家指出来
包子388321
2020/06/16
2.8K0
C语言打印程序行号、日期方便调试程序
平时开发C语言程序时,经常需要调试代码,C语言有一些宏,可以打印出当前的行号、文件名称、日期、时间,对程序的调试起到很大的帮助,可以快速定位问题。特别是开发单片机程序时,使用这些宏打印这些信息或者在LCD上显示程序的编译日期、时间,可以知道这个单片机上的固件是什么时候编译。帮助判断版本。
DS小龙哥
2022/06/17
2.2K0
C语言打印程序行号、日期方便调试程序
windows10 记事本进程 键盘消息钩子 dll注入
如图,我通过SetWindowsHookEx()函数向记事本进程中当前窗口线程注入了自己写的dll,dll中设置的回调函数使,当键盘按了1,那么就会触发一个MessageBox。
全栈程序员站长
2022/09/17
1.8K1
windows10 记事本进程 键盘消息钩子 dll注入
滴水逆向初级-win32(四)
4.1.C语言中的宽字符 1、常用函数 char wchar_ t //多字节字符类型 宽字符类型 printf wprintf //打印到控制台函数 strlen wcslen //获取长度 strcpy wcscpy //字符串复制 strcat wcscat //字符串拼接 strcmp wcscmp //字符串比较 strstr wcsstr //字符串查找 2、打印宽字符 #include <locale.h> setlocale(LC_ALL,") /
zhang_derek
2021/04/13
2.4K0
简单的TCP客户端发包工具[通俗易懂]
链接:https://pan.baidu.com/s/1MzNUzwd7WwBat6vNMcu6Ow 密码:ibuv
全栈程序员站长
2022/10/04
3.9K0
简单的TCP客户端发包工具[通俗易懂]
【C++】基础:多种日志输出方式(终端、rdbuf、ros、类库)
但重定向后,控制台就不会显示信息了,对于程序调试来说并不友好,因此,可以安装一个UnxUtils,解压后,将/usr/local/wbin添加到环境变量path中,就可以使用如tee一类的命令了。
DevFrank
2024/07/24
8890
【C++】基础:多种日志输出方式(终端、rdbuf、ros、类库)
CString 使用详解
备注Converts this CString object to an uppercase string.
全栈程序员站长
2022/09/06
1.3K0
.NET Core的日志[3]:将日志写入Debug窗口
定义在NuGet包“Microsoft.Extensions.Logging.Debug”中的DebugLogger会直接调用Debug的WriteLine方法来写入分发给它的日志消息。如果需要使用DebugLogger来写日志,我们需要将它的提供者DebugLoggerProvider注册到LoggerFactory上。由于定义在Debug类型中的所有方法都是针对Debug编译模式的,所以在只有针对Debug模式编译的应用中使用DebugLogger才有意义。这里将的“Debug编译模式”涉及到一个叫做“
蒋金楠
2018/01/15
9240
.NET Core的日志[3]:将日志写入Debug窗口
【大三操作系统实验】 请求页式管理中的置换算法
(1)FIFO算法总是选择在内存驻留时间最长的一页将其淘汰。FIFO算法认为调入内存的页不再被可能性要比其他页大,因而选择最先调入内存的页换出。
用户7886150
2020/12/29
5750
VC的内存泄漏检查
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
大菊观
2019/08/29
1.9K0
把cef3集成到MFC中的一些坑
cef3变化太大了。要注意版本。笔者所用版本为:cef_binary_3.3626.1895.g7001d56_windows32 版本。在将cef3集成到MFC时,遇到了一些问题。google了很多文档,都是针对几个月之前的版本,由于api变化太多,某些坑不能解决。现在做一下记录,防止下次再掉坑里。
xiny120
2019/06/11
6.9K0
把cef3集成到MFC中的一些坑
fprintf函数的用法_itoa函数
fprintf()函数根据指定的format(格式)发送信息(参数)到由stream(流)指定的文件.因此fprintf()可以使得信息输出到指定的文件.比如
全栈程序员站长
2022/11/02
1.1K0
相关推荐
ASSERT_VALID和ASSERT宏分析[通俗易懂]
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验