Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2646107
  • 博文数量: 416
  • 博客积分: 10220
  • 博客等级: 上将
  • 技术积分: 4193
  • 用 户 组: 普通用户
  • 注册时间: 2006-12-15 09:47
文章分类

全部博文(416)

文章存档

2022年(1)

2021年(1)

2020年(1)

2019年(5)

2018年(7)

2017年(6)

2016年(7)

2015年(11)

2014年(1)

2012年(5)

2011年(7)

2010年(35)

2009年(64)

2008年(48)

2007年(177)

2006年(40)

我的朋友

分类: C/C++

2008-06-04 11:42:39

在win32程序中可以使用函数OutputDebugString输出调试信息。输出的结果可以在vs的集成环境中看到,也可以使用工具DbgView.exe捕捉结果。函数的原形如下:

OutputDebugString

 

The OutputDebugString function sends a string to the debugger for display.

 

void OutputDebugString(
  LPCTSTR lpOutputString
);

Parameters

lpOutputString
[in] Pointer to the null-terminated string to be displayed.

Return Values

This function does not return a value

因为OutputDebugString的参数是字符串,而我们在实际使用过程中希望能像printf一样支持变参。可以用下面的方法实现这个效果:

inline bool MyDbgStr(LPCSTR lpszFormat, ...)
{
    va_list   args;
    int       nBuf;
    TCHAR     szBuffer[512]; 

    va_start(args, lpszFormat);

    nBuf = _vsnprintf(szBuffer, sizeof(szBuffer)*sizeof(TCHAR), lpszFormat, args);
    Assert(nBuf > 0);
    OutputDebugString(szBuffer);

    va_end(args);
}

 
阅读(2869) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~