diff --git a/Source/Core/Common/CommonFuncs.cpp b/Source/Core/Common/CommonFuncs.cpp index a1e93455a2..0a546428b7 100644 --- a/Source/Core/Common/CommonFuncs.cpp +++ b/Source/Core/Common/CommonFuncs.cpp @@ -52,10 +52,16 @@ std::string LastStrerrorString() // Wrapper function to get GetLastError() string. // This function might change the error code. std::string GetLastErrorString() +{ + return GetWin32ErrorString(GetLastError()); +} + +// Like GetLastErrorString() but if you have already queried the error code. +std::string GetWin32ErrorString(DWORD error_code) { char error_message[BUFFER_SIZE]; - FormatMessageA(FORMAT_MESSAGE_FROM_SYSTEM, nullptr, GetLastError(), + FormatMessageA(FORMAT_MESSAGE_FROM_SYSTEM, nullptr, error_code, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), error_message, BUFFER_SIZE, nullptr); return std::string(error_message); } diff --git a/Source/Core/Common/CommonFuncs.h b/Source/Core/Common/CommonFuncs.h index 4dac076c04..c8e43edce9 100644 --- a/Source/Core/Common/CommonFuncs.h +++ b/Source/Core/Common/CommonFuncs.h @@ -53,6 +53,9 @@ std::string LastStrerrorString(); // This function might change the error code. std::string GetLastErrorString(); +// Like GetLastErrorString() but if you have already queried the error code. +std::string GetWin32ErrorString(unsigned long error_code); + // Obtains a full path to the specified module. std::optional GetModuleName(void* hInstance); #endif