mirror of
https://github.com/RPCS3/rpcs3.git
synced 2024-11-25 20:22:30 +01:00
Try to fix dll checks
This commit is contained in:
parent
5fec8666e3
commit
69e4138223
@ -32,30 +32,38 @@ class WIN32_module_verifier
|
||||
{ L"vcruntime140_1.dll", "Microsoft Visual C++ 2015-2019 Redistributable", "https://aka.ms/vs/16/release/VC_redist.x64.exe" }
|
||||
};
|
||||
|
||||
// Unless we support ReactOS in future, this is a constant
|
||||
const std::wstring_view system_root = L"C:\\WINDOWS\\";
|
||||
|
||||
// Inline impl. This class is only referenced once.
|
||||
void run_module_verification()
|
||||
{
|
||||
WCHAR windir[MAX_PATH];
|
||||
if (!GetWindowsDirectory(windir, MAX_PATH))
|
||||
{
|
||||
report_fatal_error(fmt::format("WIN32_module_verifier: Failed to query WindowsDirectory"), false, true);
|
||||
}
|
||||
|
||||
const std::wstring_view windir_wsv = windir;
|
||||
|
||||
for (const auto& module : special_module_infos)
|
||||
{
|
||||
const auto hModule = GetModuleHandle(module.name.data());
|
||||
const HMODULE hModule = GetModuleHandle(module.name.data());
|
||||
if (hModule == NULL)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
WCHAR path[MAX_PATH];
|
||||
if (const auto len = GetModuleFileName(hModule, path, MAX_PATH))
|
||||
WCHAR wpath[MAX_PATH];
|
||||
if (const auto len = GetModuleFileName(hModule, wpath, MAX_PATH))
|
||||
{
|
||||
const std::wstring_view s = path;
|
||||
if (s.find(system_root) != 0)
|
||||
const std::wstring_view path_wsv = wpath;
|
||||
if (path_wsv.find(windir_wsv) != 0)
|
||||
{
|
||||
const auto module_name = wchar_to_utf8(module.name);
|
||||
const auto error_message = fmt::format(
|
||||
const std::string path = wchar_to_utf8(wpath);
|
||||
const std::string module_name = wchar_to_utf8(module.name);
|
||||
const std::string error_message = fmt::format(
|
||||
"<p>"
|
||||
"The module <strong>%s</strong> was incorrectly installed.<br>"
|
||||
"The module <strong>%s</strong> was incorrectly installed at<br>"
|
||||
"'%s'<br>"
|
||||
"<br>"
|
||||
"This module is part of the <strong>%s</strong> package.<br>"
|
||||
"Install this package, then delete <strong>%s</strong> from rpcs3's installation directory.<br>"
|
||||
"<br>"
|
||||
@ -63,6 +71,7 @@ class WIN32_module_verifier
|
||||
"<a href='%s'>%s</a>"
|
||||
"</p>",
|
||||
module_name,
|
||||
path,
|
||||
module.package_name,
|
||||
module_name,
|
||||
module.dl_link,
|
||||
|
Loading…
Reference in New Issue
Block a user