From a1f2ac9c9894ecffe7f750de7d07e72fc0a7eed7 Mon Sep 17 00:00:00 2001 From: Relintai Date: Fri, 9 Feb 2024 12:54:39 +0100 Subject: [PATCH] Fix windows build. --- utils/mono_reg_utils.cpp | 8 ++++---- utils/path_utils.cpp | 18 +++++++++++------- 2 files changed, 15 insertions(+), 11 deletions(-) diff --git a/utils/mono_reg_utils.cpp b/utils/mono_reg_utils.cpp index 1d4250f..dac794f 100644 --- a/utils/mono_reg_utils.cpp +++ b/utils/mono_reg_utils.cpp @@ -71,12 +71,12 @@ LONG _RegKeyQueryString(HKEY hKey, const String &p_value_name, String &r_value) buffer.resize(512); DWORD dwBufferSize = buffer.size(); - LONG res = RegQueryValueExW(hKey, p_value_name.c_str(), 0, NULL, (LPBYTE)buffer.ptr(), &dwBufferSize); + LONG res = RegQueryValueExW(hKey, (LPCWSTR)p_value_name.utf16().get_data(), 0, NULL, (LPBYTE)buffer.ptr(), &dwBufferSize); if (res == ERROR_MORE_DATA) { // dwBufferSize now contains the actual size buffer.resize(dwBufferSize); - res = RegQueryValueExW(hKey, p_value_name.c_str(), 0, NULL, (LPBYTE)buffer.ptr(), &dwBufferSize); + res = RegQueryValueExW(hKey, (LPCWSTR)p_value_name.utf16().get_data(), 0, NULL, (LPBYTE)buffer.ptr(), &dwBufferSize); } if (res == ERROR_SUCCESS) { @@ -90,7 +90,7 @@ LONG _RegKeyQueryString(HKEY hKey, const String &p_value_name, String &r_value) LONG _find_mono_in_reg(const String &p_subkey, MonoRegInfo &r_info, bool p_old_reg = false) { HKEY hKey; - LONG res = _RegOpenKey(HKEY_LOCAL_MACHINE, p_subkey.c_str(), &hKey); + LONG res = _RegOpenKey(HKEY_LOCAL_MACHINE, (LPCWSTR)p_subkey.utf16().get_data(), &hKey); if (res != ERROR_SUCCESS) goto cleanup; @@ -127,7 +127,7 @@ LONG _find_mono_in_reg_old(const String &p_subkey, MonoRegInfo &r_info) { String default_clr; HKEY hKey; - LONG res = _RegOpenKey(HKEY_LOCAL_MACHINE, p_subkey.c_str(), &hKey); + LONG res = _RegOpenKey(HKEY_LOCAL_MACHINE, (LPCWSTR)p_subkey.utf16().get_data(), &hKey); if (res != ERROR_SUCCESS) goto cleanup; diff --git a/utils/path_utils.cpp b/utils/path_utils.cpp index 221f9c5..24c9d2e 100644 --- a/utils/path_utils.cpp +++ b/utils/path_utils.cpp @@ -83,11 +83,13 @@ String cwd() { #ifdef WINDOWS_ENABLED const DWORD expected_size = ::GetCurrentDirectoryW(0, NULL); - String buffer; - buffer.resize((int)expected_size); - if (::GetCurrentDirectoryW(expected_size, buffer.ptrw()) == 0) + Char16String cbuffer; + cbuffer.resize((int)expected_size); + if (::GetCurrentDirectoryW(expected_size, (LPWSTR)cbuffer.ptrw()) == 0) return "."; + String buffer = String::utf16(cbuffer.get_data()); + return buffer.simplify_path(); #else char buffer[PATH_MAX]; @@ -113,7 +115,7 @@ String abspath(const String &p_path) { String realpath(const String &p_path) { #ifdef WINDOWS_ENABLED // Open file without read/write access - HANDLE hFile = ::CreateFileW(p_path.c_str(), 0, + HANDLE hFile = ::CreateFileW((LPCWSTR)p_path.utf16().get_data(), 0, FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); @@ -127,9 +129,11 @@ String realpath(const String &p_path) { return p_path; } - String buffer; - buffer.resize((int)expected_size); - ::GetFinalPathNameByHandleW(hFile, buffer.ptrw(), expected_size, FILE_NAME_NORMALIZED); + Char16String cbuffer; + cbuffer.resize((int)expected_size); + ::GetFinalPathNameByHandleW(hFile, (LPWSTR)cbuffer.ptrw(), expected_size, FILE_NAME_NORMALIZED); + + String buffer = String::utf16(cbuffer.get_data()); ::CloseHandle(hFile); return buffer.simplify_path();