summaryrefslogtreecommitdiff
path: root/common
diff options
context:
space:
mode:
authorYasuhiro Fujii <y-fujii@mimosa-pudica.net>2017-06-16 21:57:13 +0900
committerYasuhiro Fujii <y-fujii@mimosa-pudica.net>2017-06-16 21:57:13 +0900
commit788c6d9c5c577a062ed4d04674023656499636a6 (patch)
treebaa110401ef2a123266afa60ec235ac7752f481f /common
parentf3a6b3e44aa8c7592f150d445773db7f056c3c2d (diff)
downloadjack2-788c6d9c5c577a062ed4d04674023656499636a6.tar.gz
Make locate_dll_driver_dir() independent from the dll file name.
Diffstat (limited to 'common')
-rw-r--r--common/JackDriverLoader.cpp10
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;
}
}