win32 에서 출력창에 표시

http://www.nicklib.com/bbs/board.php?bo_table=bbs_util&wr_id=12&sca=Visual+Studio
#ifdef WIN32
#include <windows.h>
#include <tchar.h>
#include <stdio.h>
#include <crtdbg.h>
#endif
void Trace(char* lpszFormat, ...)
{
#ifdef WIN32
char szBuffer1[512];
char* lpBuf;
char* lpsz;
char szBuffer[512];
va_list args;
va_start(args, lpszFormat);
_vsntprintf(szBuffer1, sizeof(szBuffer1)/sizeof(szBuffer1[0]), lpszFormat, args);
va_end(args);
lpsz = szBuffer1;
lpBuf = szBuffer;
while (*lpsz != '\0')
{
if (lpBuf > szBuffer + sizeof(szBuffer)/sizeof(szBuffer[0]) - 3)
{
*lpBuf = '\0';
if ((1 == _CrtDbgReport(_CRT_WARN, NULL, 0, NULL, "%s", szBuffer)))
_CrtDbgBreak();
lpBuf = szBuffer;
}
if (*lpsz == '\n')
*lpBuf++ = '\r';
*lpBuf++ = *lpsz++;
}
*lpBuf = '\0';
if ((1 == _CrtDbgReport(_CRT_WARN, NULL, 0, NULL, "%s", szBuffer)))
_CrtDbgBreak();
#else
return;
#endif
}