diff --git a/Utilities/StrFmt.cpp b/Utilities/StrFmt.cpp index ae179fdd61..a3293326f0 100644 --- a/Utilities/StrFmt.cpp +++ b/Utilities/StrFmt.cpp @@ -18,7 +18,7 @@ std::string wchar_to_utf8(wchar_t *src) { std::string utf8_string; - auto tmp_size = WideCharToMultiByte(CP_UTF8, 0, src, -1, nullptr, 0, nullptr, nullptr); + const auto tmp_size = WideCharToMultiByte(CP_UTF8, 0, src, -1, nullptr, 0, nullptr, nullptr); utf8_string.resize(tmp_size); WideCharToMultiByte(CP_UTF8, 0, src, -1, utf8_string.data(), tmp_size, nullptr, nullptr); return utf8_string; @@ -47,7 +47,7 @@ std::string utf8_path_to_ansi_path(const std::string& src) std::wstring buf_wide; // Converts the utf-8 path to wide char - auto tmp_size = MultiByteToWideChar(CP_UTF8, 0, src.c_str(), -1, nullptr, 0); + const auto tmp_size = MultiByteToWideChar(CP_UTF8, 0, src.c_str(), -1, nullptr, 0); buf_wide.resize(tmp_size); MultiByteToWideChar(CP_UTF8, 0, src.c_str(), -1, buf_wide.data(), tmp_size); diff --git a/rpcs3/rpcs3qt/update_manager.cpp b/rpcs3/rpcs3qt/update_manager.cpp index 80188284c9..7d3a798929 100644 --- a/rpcs3/rpcs3qt/update_manager.cpp +++ b/rpcs3/rpcs3qt/update_manager.cpp @@ -333,8 +333,13 @@ bool update_manager::handle_rpcs3() #ifdef _WIN32 // Get executable path - wchar_t orig_path[32767]; - GetModuleFileNameW(nullptr, orig_path, sizeof(orig_path) / 2); + const std::string orig_path = Emulator::GetExeDir() + "rpcs3.exe"; + + std::wstring wchar_orig_path; + const auto tmp_size = MultiByteToWideChar(CP_UTF8, 0, orig_path.c_str(), -1, nullptr, 0); + wchar_orig_path.resize(tmp_size); + MultiByteToWideChar(CP_UTF8, 0, orig_path.c_str(), -1, wchar_orig_path.data(), tmp_size); + #endif #ifdef __linux__ @@ -596,7 +601,7 @@ bool update_manager::handle_rpcs3() QMessageBox::information(m_parent, tr("Auto-updater"), tr("Update successful!")); #ifdef _WIN32 - const int ret = _wexecl(orig_path, orig_path, L"--updating", nullptr); + const int ret = _wexecl(wchar_orig_path.data(), wchar_orig_path.data(), L"--updating", nullptr); #else const int ret = execl(replace_path.c_str(), replace_path.c_str(), "--updating", nullptr); #endif