begin process at 2012 05 29 03:12:39
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Fichier / Disque

 > 

dlfcn.h


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

dlfcn.h

lundi 10 janvier 2005 à 11:10:46 | dlfcn.h

Quazar

Salut

Je cherche des info sur la librairie <dlfcn.h>.
Je voudrais savoir dans quel conditions il est préférable que je l'utilise:
    - dlsym(HANDLE, const char *); --> dlfcn.h
au lieu d'un:
    - GetProcAddress(HANDLE, const char *); --> winbase.h - Que j'utilise habituellement

Je suis sous winXP/msVC++.

Tout éclaircissement sera le bienvenu car j'avoue être un peu perdu


Vers l'infini et au delà... [Q]
lundi 10 janvier 2005 à 11:44:15 | Re : dlfcn.h

meech

Membre Club
Réponse acceptée !
Salut,

La fonction dlsym est habituellement utilisée sur les Linux/Unix pour appeler une fonction issue d'un objet partagé (un .so), c'est-à-dire, en gros, l'équivalent d'une DLL.
Elle est présente pour des questions de portabilité.

Dans l'hypothèse où tu souhaites développer uniquement pour Win32, le conseil est d'utiliser les outils que fournit Microsoft, donc la seconde fonction. Cette dernière te permet de récupérer l'adresse mémoire d'une fonction contenue dans une DLL, et ainsi de l'appeler.

En espérant t'avoir aidé...
Ciao.

NB. Si tu as besoin d'un exemple de code portable, je suis en mesure d'en fournir un relativement rapidement.
lundi 10 janvier 2005 à 11:54:43 | Re : dlfcn.h

Quazar

Merci de m avoir apporté cette précision.

J'avoue que je m en doutais un peu mais n'étant trop habitué à charger des fonctions .DLL ou .SO, je ne savais plus trop ou j'en etais.

Merci encore.
Connaitrais tu un site oueb où je peux me procurer la <dlfcn.h>, ou suis je oubligé de l'importer depuis un linux ?

Vers l'infini et au delà... [Q]
lundi 10 janvier 2005 à 12:21:28 | Re : dlfcn.h

meech

Membre Club
Ces fonctions ne sont pas implémentées nativement sous Win32. A priori, seul le sous-environnement Cygwin propose cet en-tête de fonctions et sa librairie associée. 

Le compilateur de Dev-C++, une version de GCC sous Win32, ne propose pas cet en-tête.

Pour implémenter cet en-tête sous Microsoft Visual C++, il sera nécessaire de coder une p'tite librairie interfaçant les fonctions Windows avec les prototypes fournis par dlfcn.h (ça doit être faisable, mais tu t'en sortiras plus rapidement avec la mise en place de quelques macros...).

Cordialement.
lundi 10 janvier 2005 à 14:31:25 | Re : dlfcn.h

meech

Membre Club
Pour information, j'ai déposé à l'instant un petit exemple de code portable à ce sujet :
http://www.cppfrance.com/code.aspx?ID=28739

N'hésite pas à me faire part de tes remarques.
 Ciao.
lundi 10 janvier 2005 à 15:48:06 | Re : dlfcn.h

Quazar

Je viens de le télécharger pour y jeter un oeil.
J'ai deux petites question (mais alors vraiment petite)
    - Faut que je declare un '#define WIN32' qq part j'imagine pour utiliser ta librairie sous windows ?
    - Dans libhello.h tu fais un : SHAREDLIB int Hello(char* str); SHARELIB est une macro sur un type. Pour'tant par défaut cette macro est init a rien :
 #ifdef WIN32
   #define SHAREDLIB __declspec(dllexport)
 #else
   #define SHAREDLIB
 #endif
Qu est ce que cela veut dire... Je n'ai pas besoin de faire ma déclaration d'export sous linux ?

Vers l'infini et au delà... [Q]
lundi 10 janvier 2005 à 16:11:31 | Re : dlfcn.h

meech

Membre Club
1. Oui, il faut ajouter un /DWIN32 dans la ligne de compilation sous VC++ (mais je crois qu'elle fait partie des options par défaut).

2. En effet, il n'est pas nécessaire de spécifier que la fonction dispose de la faculté d'être exportable sous Linux, d'où l'initialisation de la macro SHARELIB à vide.

Ciao.


Cette discussion est classée dans : handle, utilise, const, char, dlfcn


Répondre à ce message

Sujets en rapport avec ce message

Fonction _T(); [ par d4M13N ] Bonjour,Je suis en train de faire un petit programme en C++ Application Windows Form sous Microsoft Visual Studio 2005.Je suis bloqué sur une malheure Conversion string en const char * [ par wallie0703 ] Bonjour j'ai un problème dans mon code : error C2664: 'C843_GcsGetAnswer' : impossible de convertir le paramètre 2 de 'std::string' en 'char *'Voici m recherche fichier séquentiel [ par peter2010 ] Bonjour, j'ai un fichier séquentiel contenant des informations séparées par des ; qui contient l'inventaire d'une épicerie,en paramètre j'ai le nom du Convertir tableau int en const char* et inverse [ par samuraijack1412 ] Bonjour,J'ai écrit une application client-serveur. Ils se communiquent par des sockets TCP. Pour envoyer au serveur un tableau d'entier, j'utilise:int Inserer un fichier texte dans un const char Fichier[]... [ par pinkfloydhighopes ] bonjour, tout est dans le titre... je suis en trin de faire un système d'exploitation en elf qui utilise le multiboot de grub. je cherche depuis pomal problème de conversion unsigned const char* => const char [ par razuki ] Bonjour, Je reviens vers vous car je n'ai pas trouvé de solutions à mon problème de conversion de const char* en unsigned const char*. reinterpret_ca question sur le C [ par zoneart ] Bonjour, J'ai une question sur le C: void exemple(const *char); int main(void) { char nom[20]; memset (nom, 0, 20); printf ("Entrez un nom : conversion de cstring en const char* [ par thejrem ] bonjour je devloppe en c sur visual studio 2008 et je test l'existance d'un fichier en faisant ceci mais j'ai un probleme if (dwMajorVersion == 5)// Questions sur l'héritage (surtout sur le protected et le private) [ par daviddubois ] Bonjour tout le monde,Je viens vous poser des questions à props de l'héritage.J'ai compris qu'on avait une classe mère (de base) et une classe fille ( const char * vers char * [ par nord666 ] Salut,Je doit transformer un constchar * en char *<font face="Times New Roman" si


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,716 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales