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__
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.