summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--common/JackWeakAPI.c16
1 files changed, 12 insertions, 4 deletions
diff --git a/common/JackWeakAPI.c b/common/JackWeakAPI.c
index 7fcacd72..fbefca23 100644
--- a/common/JackWeakAPI.c
+++ b/common/JackWeakAPI.c
@@ -62,10 +62,15 @@ void tryload_libjack()
}
#elif defined(WIN32)
#ifdef _WIN64
- libjack_handle = LoadLibrary("libjack64.dll");
+ libjack_handle = LoadLibraryA("libjack64.dll");
#else
- libjack_handle = LoadLibrary("libjack.dll");
+ libjack_handle = LoadLibraryA("libjack.dll");
#endif
+ if (!libjack_handle) {
+ char* lpMsgBuf;
+ FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS,NULL,GetLastError(),MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),(LPTSTR) &lpMsgBuf,0,NULL );
+ fprintf(stderr, "Failed to load libjack DLL: %d", lpMsgBuf);
+ }
#else
libjack_handle = dlopen("libjack.so.0", RTLD_LAZY);
#endif
@@ -77,8 +82,11 @@ void *load_jack_function(const char *fn_name)
{
void *fn = 0;
if (!libjack_handle) {
- fprintf (stderr, "libjack not found, so do not try to load %s ffs !\n", fn_name);
- return 0;
+ tryload_libjack();
+ if (!libjack_handle) {
+ fprintf (stderr, "libjack not found, so do not try to load %s ffs !\n", fn_name);
+ return 0;
+ }
}
#ifdef WIN32
fn = (void*)GetProcAddress(libjack_handle, fn_name);