TRACE for C++

代码
/* 
Trace.h
*/

#ifndef __TRACE_H__
#define __TRACE_H__

#include 
<crtdbg.h>
#include 
<stdarg.h>
#include 
<stdio.h>
#include 
<string.h>
#pragma warning(disable : 4996)

#ifdef _DEBUG
#define TRACEMAXSTRING    1024

inline 
void Trace(const char* format,...)
{
    
static char szBuffer[TRACEMAXSTRING];
    va_list args;
    va_start(args,format);
    
int nBuf;
    nBuf 
= _vsnprintf(szBuffer,
        TRACEMAXSTRING,
        format,
        args);
    va_end(args);

    _RPT0(_CRT_WARN,szBuffer);
}
#define TraceEx _snprintf(szBuffer,TRACEMAXSTRING,"%s(%d): ", \
    
&strrchr(__FILE__,'\\')[1],__LINE__); \
    _RPT0(_CRT_WARN,szBuffer); \
    Trace

#else
inline 
void Trace(0);
inline 
void TraceEx(0);
#endif


#endif // __TRACE_H__

Like cout it's not Thread Safe, but using this small class, you can print message to output windows.

posted @ 2010-08-06 03:58  史莱姆  阅读(2025)  评论(0编辑  收藏  举报