aboutsummaryrefslogtreecommitdiff
path: root/src/win/Exception.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/win/Exception.cpp')
-rw-r--r--src/win/Exception.cpp24
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