mirror of
https://github.com/RPCS3/rpcs3.git
synced 2024-12-28 00:18:23 +00:00
cpu_stats: fmt::win_error_to_string
This commit is contained in:
parent
7a1a4541c0
commit
e58906cb4d
@ -34,12 +34,12 @@ std::wstring utf8_to_wchar(std::string_view src)
|
||||
return wchar_string;
|
||||
}
|
||||
|
||||
std::string fmt::win_error_to_string(unsigned long error)
|
||||
std::string fmt::win_error_to_string(unsigned long error, void* module_handle)
|
||||
{
|
||||
std::string message;
|
||||
LPWSTR message_buffer = nullptr;
|
||||
if (FormatMessageW(FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_IGNORE_INSERTS,
|
||||
nullptr, error, 0, (LPWSTR)&message_buffer, 0, nullptr))
|
||||
if (FormatMessageW((module_handle ? FORMAT_MESSAGE_FROM_HMODULE : FORMAT_MESSAGE_FROM_SYSTEM) | FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_IGNORE_INSERTS,
|
||||
module_handle, error, 0, (LPWSTR)&message_buffer, 0, nullptr))
|
||||
{
|
||||
message = fmt::format("%s (0x%x)", fmt::trim(wchar_to_utf8(message_buffer), " \t\n\r\f\v"), error);
|
||||
}
|
||||
|
@ -10,8 +10,8 @@ namespace fmt
|
||||
static std::string format(const CharT(&)[N], const Args&...);
|
||||
|
||||
#ifdef _WIN32
|
||||
// Get a string for a windows error (DWORD)
|
||||
std::string win_error_to_string(unsigned long error);
|
||||
// Get a string for a windows error (DWORD). Optionally a module HANDLE can be passed.
|
||||
std::string win_error_to_string(unsigned long error, void* module_handle = nullptr);
|
||||
#endif
|
||||
}
|
||||
|
||||
|
@ -56,17 +56,7 @@ namespace utils
|
||||
#ifdef _WIN32
|
||||
std::string pdh_error(PDH_STATUS status)
|
||||
{
|
||||
HANDLE hPdhLibrary = LoadLibrary(L"pdh.dll");
|
||||
LPWSTR pMessage = NULL;
|
||||
|
||||
if (hPdhLibrary &&
|
||||
FormatMessage(FORMAT_MESSAGE_FROM_HMODULE | FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_IGNORE_INSERTS,
|
||||
hPdhLibrary, status, 0, (LPWSTR)&pMessage, 0, NULL))
|
||||
{
|
||||
return fmt::format("%s (0x%x)", fmt::trim(wchar_to_utf8(pMessage), " \t\n\r\f\v"), status);
|
||||
}
|
||||
|
||||
return fmt::format("0x%x", status);
|
||||
return fmt::win_error_to_string(status, LoadLibrary(L"pdh.dll"));
|
||||
}
|
||||
#endif
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user