7 #ifndef MYGUI_DYNLIB_H_ 8 #define MYGUI_DYNLIB_H_ 14 #if MYGUI_PLATFORM == MYGUI_PLATFORM_WIN32 15 # define MYGUI_DYNLIB_HANDLE hInstance 16 # define MYGUI_DYNLIB_LOAD( a ) LoadLibrary( a ) 17 # define MYGUI_DYNLIB_GETSYM( a, b ) GetProcAddress( a, b ) 18 # define MYGUI_DYNLIB_UNLOAD( a ) !FreeLibrary( a ) 21 typedef struct HINSTANCE__* hInstance;
23 #elif MYGUI_PLATFORM == MYGUI_PLATFORM_LINUX 24 # define MYGUI_DYNLIB_HANDLE void* 25 # define MYGUI_DYNLIB_LOAD( a ) dlopen( a, RTLD_LAZY | RTLD_GLOBAL) 26 # define MYGUI_DYNLIB_GETSYM( a, b ) dlsym( a, b ) 27 # define MYGUI_DYNLIB_UNLOAD( a ) dlclose( a ) 29 #elif MYGUI_PLATFORM == MYGUI_PLATFORM_APPLE 30 # include <CoreFoundation/CFBundle.h> 31 # define MYGUI_DYNLIB_HANDLE CFBundleRef 32 # define MYGUI_DYNLIB_LOAD( a ) mac_loadExeBundle( a ) 33 # define MYGUI_DYNLIB_GETSYM( a, b ) mac_getBundleSym( a, b ) 34 # define MYGUI_DYNLIB_UNLOAD( a ) mac_unloadExeBundle( a ) 51 DynLib(
const std::string& name);
66 std::string getName(
void)
const;
76 void* getSymbol(
const std::string& strName )
const throw();
80 std::string dynlibError()
const;
92 #endif // MYGUI_DYNLIB_H_
void * mInstance
Handle to the loaded library.
Resource holding data about a dynamic library.
std::string mName
Name of library.
#define MYGUI_DYNLIB_HANDLE
Manager of dynamic libraries.