diff --git a/include/dynloader.h b/include/dynloader.h index 3a2b7f4ad..d2c35005c 100644 --- a/include/dynloader.h +++ b/include/dynloader.h @@ -15,18 +15,18 @@ #endif // __APPLE__ #endif // _POSIX -#if defined (_WIN) +#ifdef _WIN #include -#endif // _WIN +#endif -#if defined (_WIN) -#define hc_dlopen LoadLibrary -#define hc_dlclose FreeLibrary -#define hc_dlsym GetProcAddress +#ifdef _WIN +HMODULE hc_dlopen (LPCSTR lpLibFileName); +BOOL hc_dlclose (HMODULE hLibModule); +FARPROC hc_dlsym (HMODULE hModule, LPCSTR lpProcName); #else -#define hc_dlopen dlopen -#define hc_dlclose dlclose -#define hc_dlsym dlsym +void *hc_dlopen (const char *fileName, int flag); +int hc_dlclose (void *handle); +void *hc_dlsym (void *module, const char *symbol); #endif #define HC_LOAD_FUNC2(ptr,name,type,var,libname,noerr) \ diff --git a/src/dynloader.c b/src/dynloader.c index ce0bf30f7..9aa3276a8 100644 --- a/src/dynloader.c +++ b/src/dynloader.c @@ -5,3 +5,39 @@ #include "common.h" #include "dynloader.h" + +#ifdef _WIN + +HMODULE hc_dlopen (LPCSTR lpLibFileName) +{ + return LoadLibraryA (lpLibFileName); +} + +BOOL hc_dlclose (HMODULE hLibModule) +{ + return FreeLibrary (hLibModule); +} + +FARPROC hc_dlsym (HMODULE hModule, LPCSTR lpProcName) +{ + return GetProcAddress (hModule, lpProcName); +} + +#else + +void *hc_dlopen (const char *fileName, int flag) +{ + return dlopen (fileName, flag); +} + +int hc_dlclose (void * handle) +{ + return dlclose (handle); +} + +void *hc_dlsym (void *module, const char *symbol) +{ + return dlsym (module, symbol); +} + +#endif