|
|
@ -1429,22 +1429,27 @@ int getLastError()
|
|
|
|
std::string formatErrorMessage(int errorCode)
|
|
|
|
std::string formatErrorMessage(int errorCode)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
#ifdef NL_OS_WINDOWS
|
|
|
|
#ifdef NL_OS_WINDOWS
|
|
|
|
LPVOID lpMsgBuf;
|
|
|
|
LPVOID lpMsgBuf = NULL;
|
|
|
|
FormatMessage(
|
|
|
|
DWORD len = FormatMessageW(
|
|
|
|
FORMAT_MESSAGE_ALLOCATE_BUFFER |
|
|
|
|
FORMAT_MESSAGE_ALLOCATE_BUFFER |
|
|
|
|
FORMAT_MESSAGE_FROM_SYSTEM |
|
|
|
|
FORMAT_MESSAGE_FROM_SYSTEM |
|
|
|
|
FORMAT_MESSAGE_IGNORE_INSERTS,
|
|
|
|
FORMAT_MESSAGE_IGNORE_INSERTS,
|
|
|
|
NULL,
|
|
|
|
NULL,
|
|
|
|
errorCode,
|
|
|
|
errorCode,
|
|
|
|
MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), // Default language
|
|
|
|
MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), // Default language
|
|
|
|
(LPTSTR) &lpMsgBuf,
|
|
|
|
(LPWSTR) &lpMsgBuf,
|
|
|
|
0,
|
|
|
|
0,
|
|
|
|
NULL
|
|
|
|
NULL
|
|
|
|
);
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
string ret = (char*)lpMsgBuf;
|
|
|
|
// empty buffer, an error occured
|
|
|
|
|
|
|
|
if (len == 0) return toString("FormatMessage returned error %d", getLastError());
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// convert wchar_t* to std::string
|
|
|
|
|
|
|
|
string ret = wideToUtf8(lpMsgBuf);
|
|
|
|
|
|
|
|
|
|
|
|
// Free the buffer.
|
|
|
|
// Free the buffer.
|
|
|
|
LocalFree( lpMsgBuf );
|
|
|
|
LocalFree(lpMsgBuf);
|
|
|
|
|
|
|
|
|
|
|
|
return ret;
|
|
|
|
return ret;
|
|
|
|
#else
|
|
|
|
#else
|
|
|
|