begin process at 2012 05 27 14:17:29
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Divers

 > CHARGER UNE DLL DYNAMIQUEMENT (PORTABLE)

CHARGER UNE DLL DYNAMIQUEMENT (PORTABLE)


 Information sur la source

Note :
9,67 / 10 - par 3 personnes
9,67 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Divers Niveau :Initié Date de création :25/06/2005 Vu / téléchargé :6 060 / 646

Auteur : Funto66

Ecrire un message privé
Site perso
Commentaire sur cette source (13)
Ajouter un commentaire et/ou une note

 Description

C'est un tout petit code, juste une classe en fait, qui permet de charger des fonctions ou des objets définis dans une DLL ou une lib dynamique sous UNIX de façons portable.
En gros, on a un fichier .cpp qui contient du code à être mis dans une DLL, genre une fonction "void ma_func()", et on la charge dynamiquement depuis un exe; on peut alors, depuis cet exe, appeler ma_func().

L'avantage de ce code c'est qu'il est portable sous Linux (rajouter l'option -ldl à la compilation) et Windows, et qu'il permet d'éviter de linker le prog à la DLL au moment de la compilation (ça peut être utile, par exemple pour faire un système de plug-ins).



 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Sources du même auteur

Source avec Zip Source avec une capture GÉNÉRATEUR DE LIGHTMAPS À PARTIR D'UNE HEIGHTMAP
Source avec Zip Source avec une capture [OPENGL] LOADER XPM: TEXTURES DANS L'EXE
Source avec Zip Source avec une capture LECTEUR VIDEO OPENGL
Source avec Zip Source avec une capture HEIGHTMAP OPENGL
Source avec Zip Source avec une capture ALPHA EDIT 3.5 (OUTIL POUR OPENGL)

 Sources de la même categorie

Source avec Zip KISIEL CD INFO DRIVE par kisiel0147852
Source avec une capture SUPPRESSION DES REDONDANCES DE FICHIERS par cyberntique
Source avec Zip ÉDITEUR DE RECTANGLES EN CONSOLE par seoseo
CONVERSION DE FICHIER EN FICHIER BMP par seoseo
Source avec Zip DETECTEUR EJP par idpro

Commentaires et avis

Commentaire de BruNews le 25/06/2005 14:38:58 administrateur CS

Grouper le code pour chaque systeme dans un même fichier cpp est le rendre portable ?
Je pense que ça n'amène qu'à un gros souk ingérable dès que le code deviendra volumineux, un dossier par systeme cible avrc le code spécifique à chacun me semble préférable, ensuite...

Commentaire de Funto66 le 25/06/2005 15:30:31

Un même fichier .h avec des inlines dans mon cas ^^

Par portable j'entends uniquement les UNIX je pense que MacOS X doit passer aussi avec libdl non?) et les Windows...

Maintenant faire un fichier par système, moi je trouve ça lourd...

Commentaire de darkpoulpo le 27/06/2005 13:52:46

moi je trouve ca sympat, ce serait un bon complement pour ma gestion de plugin.
si on peut mettre une note, je le fais.

Commentaire de RaphAstronome le 27/06/2005 14:49:07

Oui un peu lourd mais bien ca reste corect, en tout cas merci c'est exactement le code que je cherchais a faire.

Il y aurait t'il pas quelqu'un pour le tester sous MacOS X ?

Commentaire de Funto66 le 27/06/2005 14:58:05

Yeah merci à vous 2 :)

Apparemment la libdl existe aussi sous MacOS X, Cf http://macosx.forked.net/showcat.php?cat=Libraries&sortmethod=reverse

Commentaire de Arnaud16022 le 27/06/2005 21:35:11

LOOOL
je te reconnais bien la Funto.
Rien qu'en voyant (PORTABLE)dans le titre je me suis dit : tiens ca je sais qui c'est ! :p
je suis d'accord avec tout le monde ici en fait:
-> brunews: quand ce code deviendra un peu grand (si il le devient) , aïe aïe, bonjour pour s'y retrouver
-> Funto: c'est aussi vrai que pour un si petit projet, un dossier par OS c'est relou.


sinon merci ca me conforte dans mes idées pour faire un basecode opengl portable: les #define indispensables...
je ne crois pas qu'il y ait bcp de doc sur le net qd a le portabilité; chaque fois que je poste sur le sujet on me répond ' utilise GLUT'wééé coool :(

et pour tester a sous Mac faudrait encore faire le code pour....
et si quelqu'un a une XBox , histoire de voir si ca peut etre fait vraiement partout ^^
++arno

Commentaire de Arnaud16022 le 27/06/2005 21:37:51

Ah je me demandais encore: sous VC6 qd on crée une dll on peut aussi faire une lib, comme ca pas besoin de charger tous les symboles un par un; c'est pas posssible,si, avec ton code? c'est faisable?

Commentaire de Funto66 le 27/06/2005 21:53:47

Normalement c'est un code qui ne devrait pas grandir, à moins que l'on ne veuille ajouter une gestion d'erreurs mais bon bof...

Pour la version Mac, j'ai dit dans mon post précédent que la libdl existait aussi sous MacOS X (pour MacOS 9 j'en doute mais bon MacOS 9...), donc bon logiquement ça devrait être portable.

Quant aux DLLs, mon code sert à les charger dynamiquement, mais suffit de linker avec le .lib créé par VC++ lors d'un projet DLL pour ne pas avoir besoin de recourir à cette méthode. L'avantage de cette méthode c'est justement de ne pas avoir à linker à la compil, ça permet de créer des sytèmes de plug-ins : un plug-in == une DLL, or on n'a pas linké l'exe à la DLL en question; il peut la charger dynamiquement, s'il la trouve.

Commentaire de Arnaud16022 le 27/06/2005 21:56:39

wééé
oki, thanks
++

Commentaire de scalpto le 26/11/2005 12:18:50

Bonjour
Jesuis en train d utiliser les programme sur le chargement de DLL mais j 'ai un ptit probreme avec cette partie de code:

lib_func = (LibFunc)lib.GetSymbol("lib_func");
value = (int*)lib.GetSymbol("value");

if(!lib_func)
printf("Erreur : symbole non trouve\n");
else
(*lib_func)(*value);

lib.Close();
return 0;
en faite je ne sais pas ce que sais la lib_fonc donc j ai toujour le message "symbole non trouve".
J'ai telecharger php4 dedans il y a bien interpreteur php qui est la dll a charger mais en ce qui conserne les symbole je ne sais pa ce que sait.
Merci de votre aide

Commentaire de Arnaud16022 le 26/11/2005 13:52:37

Un symbole c'est le nom d'un fontion implémentée dans la dll/ le .so et qui est déclaré dans le header fourni avec la dll

Commentaire de scalpto le 26/11/2005 13:59:18

Ok merci et le header c est quoi l'extension de son fichier?

Commentaire de Funto66 le 10/12/2005 23:47:21

Un header c'est un fichier .h...mais par contre je vois pas ce que vient faire PHP dans ton histoire...

 Ajouter un commentaire




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 : 21,856 sec (4)

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