Tech & IT/프로그래밍

TRACE Macro 만들기

해피콧 2009. 9. 2. 20:57
'); }
'); }
http://blog.naver.com/rkawk01?Redirect=Log&logNo=70033087741

예전에 C공부할 때 가변인자 함수 보고 아~ 이렇게 하는구나 했는데
지금도 회사에서 Log등을 wrapper class등을 이용해서 가변인자 함수로 만드는 것을 보고 아~ 이렇게 하는구나 했는데
웹서핑하다가 위에 링크에서 가변인자 Macro는 만드는 것을 보고 또 아~ 하게 되어서 
한번 해보았다.

win32 console app로 test해보니 debugview에서 잘 찍히네 ㅎㅎ
소스는 저 위의 링크에서 scrap 

#include <windows.h>
#include <tchar.h>
#include <strsafe.h>
#define PRINT_TRACE

#ifdef PRINT_TRACE
#define TRACE_MSG(...) TraceMsg(__VA_ARGS__)
#else
#define TRACE_MSG(...)
#endif

inline void TraceMsg(LPCTSTR format, ...)
{
TCHAR buf[512] = {0,};
LPTSTR end = NULL;
size_t remaining = 0;
DWORD flags = STRSAFE_NULL_ON_FAILURE | STRSAFE_IGNORE_NULLS;
va_list argList;
va_start(argList, format);
StringCchVPrintfEx(buf, 512, &end, &remaining, flags, format, argList);
OutputDebugString(buf);
va_end(argList);
}

void main(void)
{
TRACE_MSG(_T("안녕하세요"));
printf("Hello!!");
}