diff options
Diffstat (limited to 'src/common')
-rw-r--r-- | src/common/HPM.c | 5 | ||||
-rw-r--r-- | src/common/HPM.h | 2 |
2 files changed, 5 insertions, 2 deletions
diff --git a/src/common/HPM.c b/src/common/HPM.c index 92b9702d4..c361ad31c 100644 --- a/src/common/HPM.c +++ b/src/common/HPM.c @@ -141,8 +141,9 @@ struct hplugin *hplugin_load(const char* filename) { plugin = HPM->create(); - if( !( plugin->dll = plugin_open(filename) ) ){ - ShowWarning("HPM:plugin_load: failed to load '"CL_WHITE"%s"CL_RESET"', skipping...\n", filename); + if (!(plugin->dll = plugin_open(filename))) { + char buf[1024]; + ShowWarning("HPM:plugin_load: failed to load '"CL_WHITE"%s"CL_RESET"' (error: %s), skipping...\n", filename, plugin_geterror(buf)); HPM->unload(plugin); return NULL; } diff --git a/src/common/HPM.h b/src/common/HPM.h index 4e1aa5beb..973bc6cca 100644 --- a/src/common/HPM.h +++ b/src/common/HPM.h @@ -19,6 +19,7 @@ #define plugin_open(x) LoadLibraryA(x) #define plugin_import(x,y,z) (z)GetProcAddress((x),(y)) #define plugin_close(x) FreeLibrary(x) + #define plugin_geterror(buf) (FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM, NULL, GetLastError(), 0, buf, sizeof(buf), NULL) ? buf : "Unknown error") #define DLL_EXT ".dll" #define DLL HINSTANCE @@ -31,6 +32,7 @@ #endif // RTLD_DEEPBIND #define plugin_import(x,y,z) (z)dlsym((x),(y)) #define plugin_close(x) dlclose(x) + #define plugin_geterror(buf) ((void)buf, dlerror()) #if defined CYGWIN #define DLL_EXT ".dll" |