CallBack : interconnection

cs_ABF Messages postés 227 Date d'inscription samedi 21 mai 2005 Statut Membre Dernière intervention 26 avril 2012 - 14 juil. 2008 à 16:34
cs_ABF Messages postés 227 Date d'inscription samedi 21 mai 2005 Statut Membre Dernière intervention 26 avril 2012 - 15 juil. 2008 à 12:19
Bonjour,

J'ai testé plusieurs choses :
- plugins
- dll

Mon soucis est de faire une sorte de mix entre les 2.

En fait j'ai une appli principale et elle ne changera pas (maj).
Ensuite, je mettrais à dispositions des plugin/dll qui permettront d'executer du code.

EN GROS :
APP Principale : msgbox main()

PLUGIN/DLL : function main() as string
main = "slt"
.....
... execution d'autres sub/functions
end sub

Voila.

Le soucis est que je ne connais qu'une seule methode (main) de mon plugin/dll et je ne connais pas à l'avance si le plugins/dll existe et je dois donc charger en memoire le fichier (plugin/dll)

Comment faire cette interaction entre une app (.exe) et des plugins/dll.


Je veux donc faire un callback comme ceci : http://allapi.mentalis.org/php/redirect/redirect.php?action=download&id=395

mais avec des sortes de plugins !!!

Voila.

Merci

4 réponses

cs_ABF Messages postés 227 Date d'inscription samedi 21 mai 2005 Statut Membre Dernière intervention 26 avril 2012
14 juil. 2008 à 16:36
Bonjour,

J'ai testé plusieurs choses :
- plugins
- dll

Mon soucis est de faire une sorte de mix entre les 2.

En fait j'ai une appli principale et elle ne changera pas (maj).
Ensuite, je mettrais à dispositions des plugin/dll qui permettront d'executer du code.


EN GROS :
APP Principale : msgbox main()

PLUGIN/DLL : function main() as string
main = "slt"
.....
... execution d'autres sub/functions
end function


Le soucis est que je ne connais qu'une seule methode (main) de mon plugin/dll et je ne connais pas à l'avance si le plugins/dll existe et je dois donc charger en memoire le fichier (plugin/dll)

Comment faire cette interaction entre une app (.exe) et des plugins/dll.

Je veux donc faire un callback comme ceci : http://allapi.mentalis.org/php/redirect/redirect.php?action=download&id=395 mais avec des sortes de plugins !!!


Voila.

Merci
0
cs_niky Messages postés 168 Date d'inscription jeudi 28 juin 2001 Statut Membre Dernière intervention 18 octobre 2008 7
14 juil. 2008 à 18:52
Salut,

Quand je dois faire appli qui utilise des plugins, je procède ainsi :

1) Je créé une DLL qui contient une interface IPlugin (par exemple)
2) Je créé mon application qui va référencer ma DLL (=> voir les références dans les propriétés du projet)
3) Je créé mes plugins (ce sont des DLL) qui référencent ma DLL contenant IPlugin. Toutes les classes qui sont des plugins implémentent IPlugin et possèdent un constructeur sans argument.
4) Je place mes plugins dans le répertoire de l'application (où ailleurs)
5) Mon application principale va parcourir toutes les DLL qui sont dans son répertoire (avec System.Reflection.Assembly.LoadAssembly) et rechercher par réflexion les classes qui implémentent IPlugin. Quand j'ai toutes ces classes, je les instancie : c'est facile, elles ont toutes un constructeur sans argument. Ensuite, je caste l'objet pour en IPlugin et j'ai accès à toutes les fonctions de l'interface IPlugin.

Au niveau des performances ça pose quelques problèmes : par experience, LoadAssembly et la réflexion sont des processus pas très rapides.
Si l'application est sensible, le fait de charger toutes les assemblies d'un répertoire sans vérification peut être à l'origine de failles de sécurité.
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
15 juil. 2008 à 10:01
0
cs_ABF Messages postés 227 Date d'inscription samedi 21 mai 2005 Statut Membre Dernière intervention 26 avril 2012
15 juil. 2008 à 12:19
Bonjour,

Renfield > source très ancienne : je l'avais déjà dans mes archives :D

Merci à vous deux. Je vais essayer de faire un mix et trouver une solution ;)
0
Rejoignez-nous