CHARGER UNE DLL DYNAMIQUEMENT (PORTABLE)

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019 - 25 juin 2005 à 14:38
Funto66 Messages postés 1267 Date d'inscription mercredi 1 janvier 2003 Statut Membre Dernière intervention 28 février 2007 - 10 déc. 2005 à 23:47
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/32320-charger-une-dll-dynamiquement-portable

Funto66 Messages postés 1267 Date d'inscription mercredi 1 janvier 2003 Statut Membre Dernière intervention 28 février 2007 4
10 déc. 2005 à 23:47
Un header c'est un fichier .h...mais par contre je vois pas ce que vient faire PHP dans ton histoire...
scalpto Messages postés 5 Date d'inscription lundi 14 novembre 2005 Statut Membre Dernière intervention 27 janvier 2008
26 nov. 2005 à 13:59
Ok merci et le header c est quoi l'extension de son fichier?
Arnaud16022 Messages postés 1329 Date d'inscription vendredi 15 août 2003 Statut Membre Dernière intervention 16 juin 2010 2
26 nov. 2005 à 13:52
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
scalpto Messages postés 5 Date d'inscription lundi 14 novembre 2005 Statut Membre Dernière intervention 27 janvier 2008
26 nov. 2005 à 12:18
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
Arnaud16022 Messages postés 1329 Date d'inscription vendredi 15 août 2003 Statut Membre Dernière intervention 16 juin 2010 2
27 juin 2005 à 21:56
wééé
oki, thanks
++
Funto66 Messages postés 1267 Date d'inscription mercredi 1 janvier 2003 Statut Membre Dernière intervention 28 février 2007 4
27 juin 2005 à 21:53
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.
Arnaud16022 Messages postés 1329 Date d'inscription vendredi 15 août 2003 Statut Membre Dernière intervention 16 juin 2010 2
27 juin 2005 à 21:37
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?
Arnaud16022 Messages postés 1329 Date d'inscription vendredi 15 août 2003 Statut Membre Dernière intervention 16 juin 2010 2
27 juin 2005 à 21:35
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
Funto66 Messages postés 1267 Date d'inscription mercredi 1 janvier 2003 Statut Membre Dernière intervention 28 février 2007 4
27 juin 2005 à 14:58
Yeah merci à vous 2 :)

Apparemment la libdl existe aussi sous MacOS X, Cf http://macosx.forked.net/showcat.php?cat=Libraries&sortmethod=reverse
RaphAstronome Messages postés 104 Date d'inscription samedi 7 décembre 2002 Statut Membre Dernière intervention 17 août 2009
27 juin 2005 à 14:49
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 ?
darkpoulpo Messages postés 76 Date d'inscription lundi 21 mars 2005 Statut Membre Dernière intervention 29 novembre 2009
27 juin 2005 à 13:52
moi je trouve ca sympat, ce serait un bon complement pour ma gestion de plugin.
si on peut mettre une note, je le fais.
Funto66 Messages postés 1267 Date d'inscription mercredi 1 janvier 2003 Statut Membre Dernière intervention 28 février 2007 4
25 juin 2005 à 15:30
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...
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
25 juin 2005 à 14:38
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...
Rejoignez-nous