diff options
author | Yasuhiro Fujii <y-fujii@mimosa-pudica.net> | 2017-06-16 21:57:13 +0900 |
---|---|---|
committer | Yasuhiro Fujii <y-fujii@mimosa-pudica.net> | 2017-06-16 21:57:13 +0900 |
commit | 788c6d9c5c577a062ed4d04674023656499636a6 (patch) | |
tree | baa110401ef2a123266afa60ec235ac7752f481f /common | |
parent | f3a6b3e44aa8c7592f150d445773db7f056c3c2d (diff) | |
download | jack2-788c6d9c5c577a062ed4d04674023656499636a6.tar.gz |
Make locate_dll_driver_dir() independent from the dll file name.
Diffstat (limited to 'common')
-rw-r--r-- | common/JackDriverLoader.cpp | 10 |
1 files changed, 3 insertions, 7 deletions
diff --git a/common/JackDriverLoader.cpp b/common/JackDriverLoader.cpp index bf4fde94..4ce81661 100644 --- a/common/JackDriverLoader.cpp +++ b/common/JackDriverLoader.cpp @@ -36,11 +36,9 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. static char* locate_dll_driver_dir() { -#ifdef _WIN64 - HMODULE libjack_handle = LoadLibrary("libjackserver64.dll"); -#else - HMODULE libjack_handle = LoadLibrary("libjackserver.dll"); -#endif + HMODULE libjack_handle = NULL; + GetModuleHandleEx(GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS | GET_MODULE_HANDLE_EX_FLAG_UNCHANGED_REFCOUNT, + reinterpret_cast<LPCSTR>(locate_dll_driver_dir), &libjack_handle); // For WIN32 ADDON_DIR is defined in JackConstants.h as relative path char driver_dir_storage[512]; @@ -52,11 +50,9 @@ static char* locate_dll_driver_dir() jack_info("Drivers/internals found in : %s", driver_dir_storage); strcat(driver_dir_storage, "/"); strcat(driver_dir_storage, ADDON_DIR); - FreeLibrary(libjack_handle); return strdup(driver_dir_storage); } else { jack_error("Cannot get JACK dll directory : %d", GetLastError()); - FreeLibrary(libjack_handle); return NULL; } } |