Page principale | Liste alphabétique | Liste des classes | Liste des fichiers | Membres de classe | Membres de fichier | Pages associées

Référence du fichier SurcoucheModule.h

Surcouche pour module. Plus de détails...

#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.


Description détaillée

Redéfinie tout un tas de fonctions système pour les rendre portables unix et windows.

Auteur:
aerith (www.aerith.fr)
Version:
1.0
Date:
18/03/2007

Définition dans le fichier SurcoucheModule.h.


Documentation des macro

#define CALL class,
methode   )     ((class).*(methode))
 

Exécute la méthode methode de la class class.

Définition à la ligne 17 du fichier SurcoucheModule.h.


Documentation des typedef

typedef void* MODULE
 

Crée un module dynamique (dll ou so).

Définition à la ligne 35 du fichier SurcoucheModule.h.

Référencé par ModuleUnload().

typedef void*(* ROUTINE)(void *)
 

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().


Documentation des fonctions

int ModuleImport MODULE  Module,
ROUTINE pFonction,
char *  pName
 

Importe une fonction depuis un module dynamique.

Paramètres:
Module pointeur sur module.
pFonction adresse mémoir de la fonction importé.
pName nom de la fonction à importer.
Renvoie:
1 si OK sinon 0
Voir également:
ModuleLoad() et ModuleUnLoad()

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 }

int ModuleLoad MODULE pModule,
char *  pName
 

Charge un module dynamique.

Paramètres:
pModule adresse mémoire du module chargé.
pName fichier du module à charger.
Renvoie:
1 si OK sinon 0
Voir également:
ModuleUnLoad() et ModuleImport()

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 }

int ModuleUnload MODULE pModule  ) 
 

Decharge un module dynamique.

Paramètres:
pModule pointeur sur le module à decharger.
Renvoie:
Voir également:
ModuleLoad() et ModuleImport()

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 }


Généré le Thu Jun 12 09:12:30 2008 pour A.I.F. par  doxygen 1.3.9.1