实现TRACE宏功能(内联函数形式和宏形式),无MFC时打印到Output窗口
2011-02-09 21:51
435 查看
内联函数形式:
宏形式:
内联函数的形式存在缺陷,不能用来统计所在的函数和行号等
更好的方法应该使用宏的方式去实现
VC6 不支持可变参数的宏,可以参考Warkaround
VC6 实现TRACE 文件、行号,__VA_ARGS__ Walkaround
http://blog.csdn.net/iamoyjj/archive/2011/02/15/6186935.aspx
inline void trace(const char* format,...) { va_list ap; va_start(ap,format); int len=_vscprintf(format,ap)+1;//+1计入'/0' char *pBuf=(char*)malloc(sizeof(char)*len); vsprintf_s(pBuf,len,format,ap); va_end(ap); OutputDebugStringA(pBuf); free(pBuf); }
宏形式:
内联函数的形式存在缺陷,不能用来统计所在的函数和行号等
更好的方法应该使用宏的方式去实现
#define DBG_BUF_SIZE 1024 CHAR _buf_[DBG_BUF_SIZE]; #define TRACE(...) do{/ sprintf_s(_buf_,DBG_BUF_SIZE,__VA_ARGS__);/ OutputDebugStringA(_buf_);/ }while(0)
VC6 不支持可变参数的宏,可以参考Warkaround
VC6 实现TRACE 文件、行号,__VA_ARGS__ Walkaround
http://blog.csdn.net/iamoyjj/archive/2011/02/15/6186935.aspx
相关文章推荐
- 实现TRACE宏功能(内联函数形式和宏形式),无MFC时打印到Output窗口
- VC++ 实现 窗口最小化 MFC
- MFC中左键移动窗口实现方法
- MFC 控件随窗口同步变大的实现
- MFC中使用控制台窗口打印调试信息
- 怎么实现MFC窗口的最大化以及控件随最大化发生位置变动原因
- VC中实现在OUTPUT中打印log
- MFC在对话框中实现打印预览
- MFC覆盖OnPrepareDC实现“所见即所得”打印
- MFC对话框使用CPrintDialog实现打印,指定打印机、后台打印
- 使用WindowsFormsHost实现WPF窗口中“镶嵌”MFC窗口
- MFC窗口实现最小化到托盘 右键菜单和还原
- 通过js实现弹出窗口进行打印
- PowerBuilder中实现数据窗口打印预览通用方法
- MFC 基于多文档的打印和打印预览功能的实现
- 禁止窗口移动----API及MFC实现方法及原理
- MFC对话框控件和背景图片自适应窗口最大化和拉伸缩放的实现
- MFC实现类似qq的在屏幕右下角动画显示消息窗口 .
- mfc主窗口添加背景图片后,如何实现在背景图片上输出文字
- 用多线程方法实现在MFC/WIN32中调用OpenGL函数并创建OpenGL窗口