00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011 #include "SurcoucheModule.h"
00012
00013
00014 int ModuleLoad(MODULE *pModule, char *pName)
00015 {
00016 *pModule = NULL;
00017 #ifdef WIN32
00018 *pModule = (MODULE)LoadLibrary(pName);
00019 #else
00020 *pModule = (MODULE)dlopen(pName, RTLD_NOW);
00021 #endif
00022
00023 if(*pModule)
00024 return 1;
00025
00026 return 0;
00027 }
00028
00029 int ModuleUnload(MODULE *pModule)
00030 {
00031 int r = 1;
00032 #ifdef WIN32
00033 if(FreeLibrary((MODULE)*pModule))
00034 r = 0;
00035 #else
00036 if(!dlclose((MODULE)*pModule))
00037 r = 0;
00038 #endif
00039 *pModule = NULL;
00040
00041 return r;
00042 }
00043
00044 int ModuleImport(MODULE Module, ROUTINE *pFonction, char *pName)
00045 {
00046 *pFonction = NULL;
00047
00048 #ifdef WIN32
00049 *pFonction = (ROUTINE)GetProcAddress(Module, pName);
00050 #else
00051 *pFonction = (ROUTINE)dlsym(Module, pName);
00052 #endif
00053
00054 if(*pFonction)
00055 return 1;
00056
00057 return 0;
00058 }