VC++非MFC项目中如何使用TRACE宏
来源:互联网 发布:linux注销用户命令 编辑:程序博客网 时间:2024/05/16 14:31
http://blog.csdn.net/zhangxinrun/article/details/5820894
记得原来尝试学MFC的时候觉得有一个TRACE可以在Debug时向VS的调试输出窗口输出字串符,用来调试时跟踪变量很方便。
然则如果不是MFC项目或者ATL的项目的话是不能使用这个宏的。这时有一个没有什么额外消耗的办法能够做到向调试输出窗口输出。
在项目中额外包含windows.h这个头文件,再使用OutputDebugString()这个函数就能够起到与TRACE()宏相同的效果。在进行一点包装就能和c中的printf一样接受不定项参数。
下面程序做为范例。
#include <iostream>
#include <windows.h>
using namespace std;
bool _trace(TCHAR *format, ...)
{
TCHAR buffer[1000];
va_list argptr;
va_start(argptr, format);
wvsprintf(buffer, format, argptr);
va_end(argptr);
OutputDebugString(buffer);
return true;
}
int main() {
int test = 5;
_trace("hi output:%d", test);
int a;
cin >> a;
}
在vs2005中编译运行后在Output窗口输出"hi output : 5"
这么nb的做法当然不是我自己发现的...在StackOverflow这里发帖问到的,那边还有一个方便使用的将trace包装的头文件和cpp文件。
话说这个StackOverflow是个蛮新颖的程序员社区,这边提问被解答的效率和质量都相当高
站点也做的很不错,web2.0风味十足,还有badges这种先进的要素
-------------------------------------
另外记得要将项目属性中General->Character Set设置为Not Set 或者Multi Byte才行,用Unicode的话无法通过编译。
再附个包trace.rar有相应cpp/h
- VC++非MFC项目中如何使用TRACE宏
- VC++非MFC项目中如何使用TRACE宏
- TRACE宏(只在MFC的DEBUG中有效)|VC++非MFC项目中如何自定义TRACE宏|头文件的重复编译|DEBUGVIEW窗口
- MFC中使用TRACE
- 在非MFC程序中使用调试宏 ASSERT(),VERIFY()和 TRACE()
- 在非MFC程序中使用调试宏 ASSERT(),VERIFY()和 TRACE()
- 在非MFC程序中使用调试宏 ASSERT(),VERIFY()和 TRACE()
- 在非MFC程序中使用调试宏 ASSERT(),VERIFY()和 TRACE()
- 在非MFC程序中使用调试宏 ASSERT(),VERIFY()和 TRACE()
- 在非MFC程序中使用调试宏 ASSERT(),VERIFY()和 TRACE()
- VC中TRACE宏的使用
- VC++使用TRACE宏
- VC中TRACE 的使用
- [转]VC: 非MFC程序TRACE和ASSERT宏的一种实现方法
- 在非MFC项目中使用CString
- MFC中输出TRACE宏
- MFC TRACE宏的使用
- MFC TRACE宏的使用
- 链队列
- 解决网盘传递超过2g限制的工具quicksplit
- 一个逗号引发的崩溃
- Android操作HTTP实现与服务器通信
- linux下获取多个网卡MAC地址
- VC++非MFC项目中如何使用TRACE宏
- cocos2d游戏术语解析
- RANSAC算法介绍[转]
- 你的决定灭了谁?
- 如何在Java程序中处理Ctrl+C
- PHP的GUID生成函数
- Cookies的具体用法详解
- 发布错误:SignTool Error: Signtool.exe returned error: 0x80880253
- cocos2d游戏开发 精灵表的详细讲解和Zwoptex工具