void OutputDebugStringEx(const wchar_t *strOutputString, ...)
{va_list vlArgs = NULL;
va_start(vlArgs, strOutputString);
size_t nLen = _vscwprintf(strOutputString, vlArgs) + 1;
wchar_t *strBuffer = new wchar_t[nLen + 8];
_vsnwprintf_s(strBuffer, nLen, nLen, strOutputString, vlArgs);
va_end(vlArgs);
OutputDebugStringW(strBuffer);
delete[] strBuffer;
}
void OutputDebugStringEx(const char *strOutputString, ...)
{
va_list vlArgs = NULL;
va_start(vlArgs, strOutputString);
size_t nLen = _vscprintf(strOutputString, vlArgs) + 1;
char *strBuffer = new char[nLen + 8];
_vsnprintf_s(strBuffer, nLen, nLen, strOutputString, vlArgs);
va_end(vlArgs);
OutputDebugStringA(strBuffer);
delete[] strBuffer;
}