diff options
Diffstat (limited to 'src/win/Exception.cpp')
-rw-r--r-- | src/win/Exception.cpp | 24 |
1 files changed, 13 insertions, 11 deletions
diff --git a/src/win/Exception.cpp b/src/win/Exception.cpp index 8d2eee23..df2103fd 100644 --- a/src/win/Exception.cpp +++ b/src/win/Exception.cpp @@ -5,13 +5,13 @@ namespace cru::platform::win { -inline std::string HResultMakeMessage( - HRESULT h_result, std::optional<std::string_view> message) { +inline String HResultMakeMessage(HRESULT h_result, + std::optional<String> message) { if (message.has_value()) - return fmt::format(FMT_STRING("HRESULT: {:#08x}. Message: {}"), h_result, - *message); + return fmt::format(FMT_STRING(L"HRESULT: {:#08x}. Message: {}"), h_result, + message->WinCStr()); else - return fmt::format(FMT_STRING("HRESULT: {:#08x}."), h_result); + return fmt::format(FMT_STRING(L"HRESULT: {:#08x}."), h_result); } HResultError::HResultError(HRESULT h_result) @@ -20,19 +20,21 @@ HResultError::HResultError(HRESULT h_result) HResultError::HResultError(HRESULT h_result, std::string_view additional_message) - : PlatformException(HResultMakeMessage(h_result, additional_message)), + : PlatformException(HResultMakeMessage( + h_result, String::FromUtf8(additional_message.data(), + additional_message.size()))), h_result_(h_result) {} -inline std::string Win32MakeMessage(DWORD error_code, - std::string_view message) { - return fmt::format("Last error code: {:#04x}.\nMessage: {}\n", error_code, - message); +inline String Win32MakeMessage(DWORD error_code, String message) { + return fmt::format(L"Last error code: {:#04x}.\nMessage: {}\n", error_code, + message.WinCStr()); } Win32Error::Win32Error(std::string_view message) : Win32Error(::GetLastError(), message) {} Win32Error::Win32Error(DWORD error_code, std::string_view message) - : PlatformException(Win32MakeMessage(error_code, message)), + : PlatformException(Win32MakeMessage( + error_code, String::FromUtf8(message.data(), message.size()))), error_code_(error_code) {} } // namespace cru::platform::win |