mirror of
https://github.com/RPCS3/rpcs3.git
synced 2025-07-04 14:01:25 +12:00
cpu_stats: fmt::win_error_to_string
This commit is contained in:
parent
7a1a4541c0
commit
e58906cb4d
3 changed files with 6 additions and 16 deletions
|
@ -34,12 +34,12 @@ std::wstring utf8_to_wchar(std::string_view src)
|
||||||
return wchar_string;
|
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;
|
std::string message;
|
||||||
LPWSTR message_buffer = nullptr;
|
LPWSTR message_buffer = nullptr;
|
||||||
if (FormatMessageW(FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_IGNORE_INSERTS,
|
if (FormatMessageW((module_handle ? FORMAT_MESSAGE_FROM_HMODULE : FORMAT_MESSAGE_FROM_SYSTEM) | FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_IGNORE_INSERTS,
|
||||||
nullptr, error, 0, (LPWSTR)&message_buffer, 0, nullptr))
|
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);
|
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&...);
|
static std::string format(const CharT(&)[N], const Args&...);
|
||||||
|
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
// Get a string for a windows error (DWORD)
|
// Get a string for a windows error (DWORD). Optionally a module HANDLE can be passed.
|
||||||
std::string win_error_to_string(unsigned long error);
|
std::string win_error_to_string(unsigned long error, void* module_handle = nullptr);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -56,17 +56,7 @@ namespace utils
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
std::string pdh_error(PDH_STATUS status)
|
std::string pdh_error(PDH_STATUS status)
|
||||||
{
|
{
|
||||||
HANDLE hPdhLibrary = LoadLibrary(L"pdh.dll");
|
return fmt::win_error_to_string(status, 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);
|
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue