Windows: Call `AddDllDirectory()` with an absolute path

(cherry picked from commit e8bd385f53)
This commit is contained in:
David Snopek 2024-08-27 17:38:30 -05:00 committed by Rémi Verschelde
parent 30bba8745c
commit 9946eba398
No known key found for this signature in database
GPG Key ID: C3336907360768E1
1 changed files with 2 additions and 1 deletions

View File

@ -420,7 +420,8 @@ Error OS_Windows::open_dynamic_library(const String &p_path, void *&p_library_ha
DLL_DIRECTORY_COOKIE cookie = nullptr;
if (p_data != nullptr && p_data->also_set_library_path && has_dll_directory_api) {
cookie = add_dll_directory((LPCWSTR)(load_path.get_base_dir().utf16().get_data()));
String dll_dir = ProjectSettings::get_singleton()->globalize_path(load_path.get_base_dir());
cookie = add_dll_directory((LPCWSTR)(dll_dir.utf16().get_data()));
}
p_library_handle = (void *)LoadLibraryExW((LPCWSTR)(load_path.utf16().get_data()), nullptr, (p_data != nullptr && p_data->also_set_library_path && has_dll_directory_api) ? LOAD_LIBRARY_SEARCH_DEFAULT_DIRS : 0);