#include <stdio.h>
#include <dlfcn.h>
Aller au code source de ce fichier.
Macros | |
#define | CALL(class, methode) ((class).*(methode)) |
Exécution de méthode. | |
Typedefs | |
typedef void * | MODULE |
Un module dynamique. | |
typedef void *(* | ROUTINE )(void *) |
Nom de routine. | |
Fonctions | |
int | ModuleLoad (MODULE *pModule, char *pName) |
Charge un module. | |
int | ModuleUnload (MODULE *pModule) |
Decharge un module. | |
int | ModuleImport (MODULE Module, ROUTINE *pFonction, char *pName) |
Importe une fonction. |
Définition dans le fichier SurcoucheModule.h.
|
Exécute la méthode methode de la class class. Définition à la ligne 17 du fichier SurcoucheModule.h. |
|
Crée un module dynamique (dll ou so). Définition à la ligne 35 du fichier SurcoucheModule.h. Référencé par ModuleUnload(). |
|
Pointe sur une fonction. Définition à la ligne 40 du fichier SurcoucheModule.h. Référencé par ModuleDynamiqueModule::GetFonction(), ModuleDynamiqueModule::Load(), NetServer::Start(), ThreadStart(), et ModuleDynamiqueModule::UnLoad(). |
|
Importe une fonction depuis un module dynamique.
Définition à la ligne 44 du fichier SurcoucheModule.cpp. Référencé par ModuleDynamiqueModule::AddFonction(), ModuleDynamiqueModule::Load(), et ModuleDynamiqueModule::UnLoad(). 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 }
|
|
Charge un module dynamique.
Définition à la ligne 14 du fichier SurcoucheModule.cpp. Référencé par ModuleDynamiqueModule::Load(). 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 }
|
|
Decharge un module dynamique.
Définition à la ligne 29 du fichier SurcoucheModule.cpp. Références MODULE. Référencé par ModuleDynamiqueModule::UnLoad(). 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 }
|