CallBack : interconnection

Signaler
Messages postés
227
Date d'inscription
samedi 21 mai 2005
Statut
Membre
Dernière intervention
26 avril 2012
-
Messages postés
227
Date d'inscription
samedi 21 mai 2005
Statut
Membre
Dernière intervention
26 avril 2012
-
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

Messages postés
227
Date d'inscription
samedi 21 mai 2005
Statut
Membre
Dernière intervention
26 avril 2012

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
Messages postés
168
Date d'inscription
jeudi 28 juin 2001
Statut
Membre
Dernière intervention
18 octobre 2008
7
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é.
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
68
Messages postés
227
Date d'inscription
samedi 21 mai 2005
Statut
Membre
Dernière intervention
26 avril 2012

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 ;)