|
@@ -22,31 +22,35 @@ namespace utils
|
|
|
|
|
|
std::string _dprintf(CHAR* pszStr, ...)
|
|
|
{
|
|
|
- const int LOGLEN = 8912;
|
|
|
- char szData[LOGLEN] = { 0 };
|
|
|
+ const int LOGLEN = 1024*20;
|
|
|
+ static char *pszData = NULL;
|
|
|
+ if ( pszData == NULL )
|
|
|
+ pszData = new char[LOGLEN];
|
|
|
+ else
|
|
|
+ memset(pszData, 0, LOGLEN);
|
|
|
#if _MSC_VER >= 1200 && _MSC_VER < 1500
|
|
|
- sprintf(szData, _T("[%s %s]\n\t"), _T("Db"), CTime::GetCurrentTime().Format(_T("%H:%M:%S")));
|
|
|
+ sprintf(pszData, _T("[%s %s]\n\t"), _T("Db"), CTime::GetCurrentTime().Format(_T("%H:%M:%S")));
|
|
|
#elif _MSC_VER >= 1500
|
|
|
- _stprintf_s(szData, _T("[%s %s]\n\t"), _T("Db"), CTime::GetCurrentTime().Format(_T("%H:%M:%S")).GetString());
|
|
|
+ _stprintf_s(pszData, LOGLEN, _T("[%s %s]\n\t"), _T("Db"), CTime::GetCurrentTime().Format(_T("%H:%M:%S")).GetString());
|
|
|
#endif
|
|
|
- int len = strlen(szData);
|
|
|
+ int len = strlen(pszData);
|
|
|
va_list args;
|
|
|
va_start(args, pszStr);
|
|
|
#if _MSC_VER >= 1200 && _MSC_VER < 1500
|
|
|
_vsnprintf(szData + len, LOGLEN - len, pszStr, args);
|
|
|
#elif _MSC_VER >= 1500
|
|
|
- _vsntprintf_s(szData + len, LOGLEN - len, _TRUNCATE, pszStr, args);
|
|
|
+ _vsntprintf_s(pszData + len, LOGLEN - len, _TRUNCATE, pszStr, args);
|
|
|
#endif
|
|
|
va_end(args);
|
|
|
- if (szData[strlen(szData) - 1] != '\n')
|
|
|
+ if (pszData[strlen(pszData) - 1] != '\n')
|
|
|
#if _MSC_VER >= 1200 && _MSC_VER < 1500
|
|
|
- strcat(szData, "\n");
|
|
|
+ strcat(pszData, "\n");
|
|
|
#elif _MSC_VER >= 1500
|
|
|
- strcat_s(szData, "\n");
|
|
|
+ strcat_s(pszData, LOGLEN, "\n");
|
|
|
#endif
|
|
|
- OutputDebugStringA(szData);
|
|
|
+ OutputDebugStringA(pszData);
|
|
|
|
|
|
- return std::string(szData);
|
|
|
+ return std::string(pszData);
|
|
|
}
|
|
|
|
|
|
std::string ByteToChars(byte b)
|