#ifdef _DEBUG void _Trace(LPCWSTR lpszFmt, ...) { va_list args; va_start(args, lpszFmt); int len = _vscwprintf(lpszFmt, args) + 1; wchar_t* lpszBuf = new wchar_t[len]; vswprintf_s(lpszBuf, len, lpszFmt, args); va_end(args); OutputDebugStringW(lpszBuf); delete[] lpszBuf; } void _Trace(LPCSTR lpszFmt, ...) { va_list args; va_start(args, lpszFmt); int len = _vscprintf(lpszFmt, args) + 1; char* lpszBuf = new char[len]; vsprintf_s(lpszBuf, len, lpszFmt, args); va_end(args); OutputDebugStringA(lpszBuf); delete[] lpszBuf; } #define _TRACE _Trace #else #define _TRACE #endif