1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
|
#if defined(_AIX)
#define LIB_OPEN_FLAGS RTLD_NOW | RTLD_GLOBAL | RTLD_MEMBER
#elif defined(__hpux)
#define LIB_OPEN_FLAGS BIND_DEFERRED |BIND_VERBOSE| DYNAMIC_PATH
#else
#define LIB_OPEN_FLAGS RTLD_NOW | RTLD_GLOBAL
#endif
#if defined(_WINDOWS)
#include <windows.h>
#define LIB_HANDLE HMODULE
#define LIB_OPEN(l) LoadLibraryA(l)
#define LIB_CLOSE FreeLibrary
#define LIB_SYMBOL(h, s, p, t) p = (t) GetProcAddress(h, s)
#elif defined(__hpux)
#include <dl.h>
#define LIB_HANDLE shl_t
#define LIB_OPEN(l) shl_load(l, LIB_OPEN_FLAGS, 0L)
#define LIB_CLOSE shl_unload
#define LIB_SYMBOL(h, s, p, t) shl_findsym(&h, s, (short) TYPE_PROCEDURE, (void *) &p)
#else
#ifdef HAVE_DLFCN_H
#include <dlfcn.h>
#endif
#define LIB_HANDLE void *
#define LIB_OPEN(l) dlopen(l, LIB_OPEN_FLAGS)
#define LIB_CLOSE dlclose
#define LIB_SYMBOL(h, s, p, t) p = (t) dlsym(h, s)
#endif |