diff options
Diffstat (limited to 'c/common.cpp')
-rw-r--r-- | c/common.cpp | 24 |
1 files changed, 10 insertions, 14 deletions
diff --git a/c/common.cpp b/c/common.cpp index 7981801..ba52f2c 100644 --- a/c/common.cpp +++ b/c/common.cpp @@ -14,36 +14,32 @@ Win32Error::~Win32Error() HeapFree(GetProcessHeap(), 0, m_wszMsg); } -const char* Win32Error::what() const noexcept +template <> +const char* Win32Error::what() const noexcept { if (!m_szMsg) FormatMessageA( FORMAT_MESSAGE_ALLOCATE_BUFFER|FORMAT_MESSAGE_FROM_SYSTEM|FORMAT_MESSAGE_IGNORE_INSERTS, NULL, m_dwErr, - MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), + MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US), (char*)&m_szMsg, 0, NULL); return m_szMsg; } -const TCHAR* Win32Error::twhat() const noexcept +template <> +const wchar_t* Win32Error::what() const noexcept { -#ifdef UNICODE -#define M m_wszMsg -#else -#define M m_szMsg -#endif - if (!M) - FormatMessage( + if (!m_wszMsg) + FormatMessageW( FORMAT_MESSAGE_ALLOCATE_BUFFER|FORMAT_MESSAGE_FROM_SYSTEM|FORMAT_MESSAGE_IGNORE_INSERTS, NULL, m_dwErr, - MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), - (TCHAR*)&M, + MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US), + (wchar_t*)&m_wszMsg, 0, NULL); - return M; -#undef M + return m_wszMsg; } /* Library: Wrapper for loading and freeing dynamically linked libraries. */ |