C++ 输出日志到 DbgView

首先感谢木杉老哥对 OutputDebugString 的封装,解决了日志信息不能直接打印变量的问题,代码简单易懂,解决了我的困难。

新建一个头文件,log.h:

#ifndef _DEBUGPRINTF_H_    
#define _DEBUGPRINTF_H_    
      
#include<Windows.h>    
#include <tchar.h>    
      
//用于输出信息到编译器输出窗口的宏定义    
//使用win API,DEBUG版本会执行,RELEASE版本则不会    
//还可以使用DebugView,WinDbg等工具查看输出    
      
#ifdef _DEBUG    
      
#define DP0(fmt) {TCHAR sOut[256];_stprintf_s(sOut,_T(fmt));OutputDebugString(sOut);}    
#define DP1(fmt,var) {TCHAR sOut[256];_stprintf_s(sOut,_T(fmt),var);OutputDebugString(sOut);}    
#define DP2(fmt,var1,var2) {TCHAR sOut[256];_stprintf_s(sOut,_T(fmt),var1,var2);OutputDebugString(sOut);}    
#define DP3(fmt,var1,var2,var3) {TCHAR sOut[256];_stprintf_s(sOut,_T(fmt),var1,var2,var3);OutputDebugString(sOut);}    
      
#endif    
      
#ifndef _DEBUG    

#define DP0(fmt) ;    
#define DP1(fmt, var) ;    
#define DP2(fmt,var1,var2) ;    
#define DP3(fmt,var1,var2,var3) ;    
      
#endif  
  
#endif

调用例子:

#include "log.h"

DWORD dwPid = ::GetCurrentProcessId();
DP0("[LYSM] Lying Simon tells the lie that he loves you so much.");
DP1("[LYSM] %d",dwPid);
DP2("[LYSM] %d,%d",dwPid,dwPid);
DP3("[LYSM] %d,%d,%d",dwPid,dwPid,dwPid);

效果图:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值