/**F*****************************************************************/ void xstrerror (char *fmt, ...) /** * PURPOSE : Display windows error * * RETURN : Nothing * * NOTES : None * *F*/ { char *error=NULL; va_list arglist; char buffer[2048]; DWORD dwError=GetLastError(); va_start (arglist, fmt); wvnsprintf (buffer, sizeof(buffer) - 1, fmt, arglist); va_end (arglist); if (FormatMessage ( FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM, NULL, dwError, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), (LPSTR)&error, 0, NULL)) { printf ("[ %s : %s\n", buffer, error); LocalFree (error); } else { printf ("[ %s : %i\n", buffer, dwError); } }
std::wstring strconv::formatW(int nMaxChar, const wchar_t* fmt, ...) { wchar_t* buf = new wchar_t[nMaxChar]; va_list args; va_start(args, fmt); #ifdef _WIN32 wvnsprintf(buf, nMaxChar, fmt, args); #else vswprintf(buf, nMaxChar, fmt, args); #endif std::wstring sRes = buf; delete [] buf; return sRes; }