MFC의 TRACE나 ATL의 ATLTRACE의 버퍼 크기는 1024로 출력 로그가 그 이상 넘어가면 잘린다.
이런 상황에서 더 긴 출력이 필요할 때 필요한 TRACE.
void _trace(LPCTSTR lpFormat, ...) { va_list args; va_start(args, lpFormat); int buff_len = _vsctprintf(lpFormat, args); if (buff_len > 1024) { LPTSTR pszBuff = new TCHAR [buff_len+1]; _vstprintf(pszBuff, lpFormat, args); va_end(args); OutputDebugString(pszBuff); delete [] pszBuff; return; } TCHAR buffer[1024+1]; _vstprintf(buffer, lpFormat, args); va_end(args); OutputDebugString(buffer); }
TRACE
VC++
Retrieved from http://hyacinth.byus.net/moniwiki/wiki.php/C++/(VC++)가변 버퍼 TRACE
last modified 2016-05-13 18:59:31