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.

你可能感兴趣的:(Trac)