mirror of
https://github.com/panda3d/panda3d.git
synced 2025-09-30 16:58:40 -04:00
Fix failure to load DLL with unicode path
- Change LoadLibrary API to unicode version on Windows
This commit is contained in:
parent
3e6dc3b046
commit
99cf21acec
@ -47,20 +47,20 @@ load_dso(const DSearchPath &path, const Filename &filename) {
|
||||
if (!abspath.is_regular_file()) {
|
||||
return NULL;
|
||||
}
|
||||
string os_specific = abspath.to_os_specific();
|
||||
wstring os_specific_w = abspath.to_os_specific_w();
|
||||
|
||||
// Try using LoadLibraryEx, if possible.
|
||||
typedef HMODULE (WINAPI *tLoadLibraryEx)(LPCTSTR, HANDLE, DWORD);
|
||||
typedef HMODULE (WINAPI *tLoadLibraryEx)(LPCWSTR, HANDLE, DWORD);
|
||||
tLoadLibraryEx pLoadLibraryEx;
|
||||
HINSTANCE hLib = LoadLibrary("kernel32.dll");
|
||||
if (hLib) {
|
||||
pLoadLibraryEx = (tLoadLibraryEx)GetProcAddress(hLib, "LoadLibraryExA");
|
||||
pLoadLibraryEx = (tLoadLibraryEx)GetProcAddress(hLib, "LoadLibraryExW");
|
||||
if (pLoadLibraryEx) {
|
||||
return pLoadLibraryEx(os_specific.c_str(), NULL, LOAD_WITH_ALTERED_SEARCH_PATH);
|
||||
return pLoadLibraryEx(os_specific_w.c_str(), NULL, LOAD_WITH_ALTERED_SEARCH_PATH);
|
||||
}
|
||||
}
|
||||
|
||||
return LoadLibrary(os_specific.c_str());
|
||||
return LoadLibraryW(os_specific_w.c_str());
|
||||
}
|
||||
|
||||
bool
|
||||
|
Loading…
x
Reference in New Issue
Block a user