vc6 调试输出行号加强版

#include <windows.h>
#include <strsafe.h>
#include <comdef.h>

#define _DEBUG_BUF_SIZE_ 1048
static char _buf_[_DEBUG_BUF_SIZE_];

class trace_impl
{
public:
    trace_impl(const char* file,size_t line):file_(file),line_(line)
    {
    }
    inline void operator() (const wchar_t* format,...) const
    {
		char msg[_DEBUG_BUF_SIZE_];
		wchar_t buf[_DEBUG_BUF_SIZE_*2];
		va_list args;
		va_start(args, format);
		StringCbVPrintfW(buf,_DEBUG_BUF_SIZE_, format, args);
		//OutputDebugStringW(buf);
		va_end(args);
		StringCbPrintfA(msg,_DEBUG_BUF_SIZE_," in %s(%d)",file_,line_);

		//StringCchPrintfW

		_bstr_t t;
		t = buf;
		t += msg;
		
		OutputDebugStringW((const wchar_t*)t);
    }
private:
    const char* file_;
    size_t line_;
};



#ifdef _DEBUG
#define LogView trace_impl(__FILE__,__LINE__) 
#else
#define LogView //
#endif




int main(int argc, char* argv[])
{
	LogView(L"%s",L"safedebug");
	return 0;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值