diff options
-rw-r--r-- | src/corelib/kernel/qsystemerror.cpp | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/corelib/kernel/qsystemerror.cpp b/src/corelib/kernel/qsystemerror.cpp index 8d375f1fb3..e22ea75e15 100644 --- a/src/corelib/kernel/qsystemerror.cpp +++ b/src/corelib/kernel/qsystemerror.cpp @@ -84,6 +84,7 @@ namespace { static QString windowsErrorString(int errorCode) { QString ret; +#ifndef Q_OS_WINRT wchar_t *string = 0; FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER|FORMAT_MESSAGE_FROM_SYSTEM, NULL, @@ -94,6 +95,17 @@ static QString windowsErrorString(int errorCode) NULL); ret = QString::fromWCharArray(string); LocalFree((HLOCAL)string); +#else + wchar_t errorString[1024]; + FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM, + NULL, + errorCode, + MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), + (LPWSTR)&errorString, + sizeof(errorString)/sizeof(wchar_t), + NULL); + ret = QString::fromWCharArray(errorString); +#endif // Q_OS_WINRT if (ret.isEmpty() && errorCode == ERROR_MOD_NOT_FOUND) ret = QString::fromLatin1("The specified module could not be found."); |