Créer une architecture plugin - C - Programmation
Marsh Posté le 01-11-2005 à 20:31:37
manatane a écrit : Je cherche une doc/howto m'expliquant en detail comment mettre en place une architecture basee sur des plugins avec les fonctions de la famille de dlopen ou d'un autre truc plus portable. |
Le chargement dynamique fait appel à des ressources systèmes qui n'ont rien de standard. Pour être portable, il faudrait une couche d'abstraction. Voir la glib()...
Marsh Posté le 01-11-2005 à 20:43:16
En fait c est sous Linux que l appli va tourner sur un truc qui interagit avec différents fs, donc çà n a pas etre a etre portable outre mesure
Il y a un wrapper Gnu pour tout ce qui dl : libltdl http://www.gnu.org/software/libtoo [...] ng-libltdl
C'est plus le cote bonne pratique pour la mise en place de ce genre d architecture qui m interesse.
Marsh Posté le 01-11-2005 à 21:02:00
manatane a écrit : En fait c est sous Linux que l appli va tourner sur un truc qui interagit avec différents fs, donc çà n a pas etre a etre portable outre mesure |
Je ne connais pas trop les détails (qui relèvent plus de la conception que du codage), mais je suppose qu'il faut définir des interfaces cohérentes et qu'ensuite, on a plus qu'à se brancher.
Si on est pas branché, les pointeurs de fonctions sont à NULL et rien ne se passe (ou on envoi un message d'erreur)... Je ne pense pas qu'il y ait d'interface applicative normalisée... Chaque applicatin a son mécanisme. Je pense que dans les docs techniques des projets ouverts comme ceux de Mozilla, on doit trouver des choses interessantes.
Marsh Posté le 01-11-2005 à 21:37:23
Emmanuel Delahaye a écrit : Je ne connais pas trop les détails (qui relèvent plus de la conception que du codage), mais je suppose qu'il faut définir des interfaces cohérentes et qu'ensuite, on a plus qu'à se brancher. |
Je viendrai demander des conseils sur mon plugin.{c,h} et sur un exemple de module quand je l aurai codé
Marsh Posté le 02-11-2005 à 02:52:22
Emmanuel Delahaye a écrit : Le chargement dynamique fait appel à des ressources systèmes qui n'ont rien de standard. Pour être portable, il faudrait une couche d'abstraction. Voir la glib()... |
Sous les unixoides, libtool est faite pour ca je crois (mais je ne l'ai jamais utilisee).
Marsh Posté le 02-11-2005 à 07:51:22
bah heuh, ouais, tu fais une fonction dans ta dll/so de plug in avec un nom
/prototype "standart" (genre int machin(truc prout)); et heuh, voila
y'a pas grand chose a dire en fait, meme si y'a bcp de solutions
tu peux par exemple renvoyer (de ton plug in) une structure contenant des pointeurs de fonctions pour mimer une classe abstraite C++
Marsh Posté le 01-11-2005 à 20:27:17
Je cherche une doc/howto m'expliquant en detail comment mettre en place une architecture basee sur des plugins avec les fonctions de la famille de dlopen ou d'un autre truc plus portable.
En clair j aimerai une doc de reference/bonne pratique qui decrit comment maintenir une liste des dits plugins, comment faire pour permettre qu un plugin demande un service à un autre et tout un tralala que j aimerai tant découvrir.
PS : merci de ne pas m afficher un panneau "google" ou "rechercher" ou un truc fin et digne d interet genre çà http://forum.hardware.fr/hardwaref [...] tm#t645139 .Celà fait en effet 2 soirées que je recherche une doc digne de ce nom et j en ai marre