2009-10-12 5 views
-4

Hey les gens, je dois créer un plug-in qui met à jour une application. Regardez, j'ai une application hôte, mais probablement je vais le mettre à jour avec plus de fonctions. Je travaille sous Windows avec Delphi 7. Fondamentalement, "mon plugin" devrait ajouter 2 ou 3 nouvelles fonctions à l'application hôte. Comment puis-je programmer un plug-in (ou une fonctionnalité) qui insère un nouveau code (nouvelles fonctions) dans l'application hôte sans le recompiler?Comment programmer un plug-in?

Note: Je suis désolé pour mon anglais. Ma langue naturelle est l'espagnol.

Merci encore, Yulien.

+5

Plate-forme, langage de programmation, etc.? –

+0

Cette question n'a pas de sens sans une sorte de contexte. – DaveE

+0

Désolé l'homme! Je travaille sur Windows, dans une application de bureau, avec Delphi. – Yulien

Répondre

1

Il existe différentes façons d'accomplir cela, je vais vous donner l'un des plus basiques.

Dites que vous la programmation avec C# sous Windows (autres langues et environnements sont similaires)

Partie 1. Vous devez être en mesure de charger un ensemble (si C++ une DLL). Vous pourriez vouloir prendre ceci d'un fichier de configuration. Procédez ainsi pour chaque fonctionnalité que vous souhaitez étendre aux applications de plug-in.

Partie 2. Vous devez pouvoir appeler du code à partir de ce plugin, donc mettez la fonctionnalité dans une interface. Par exemple, l'application principale va coder vers une interface IMyPluginCapability et votre plugin inclura une classe qui implémente cette interface. Vous pouvez déterminer quelle classe à travers la réflexion.

Partie 3. Appelez les fonctions que vous souhaitez étendre à votre extension.

Votre langue, environnement aura sûrement des capacités similaires. Vous pouvez rechercher des détails pour cet environnement.

2

Vous n'avez pas spécifié la langue ou la plate-forme sur laquelle vous travaillez, je ne peux donc vous donner qu'une réponse générique.

Les plugins peuvent être implémentés de différentes manières. Le plus simple (YMMV) consiste à compiler le plugin vers une bibliothèque dynamiquement liée (DLL dans Windows) ou un objet partagé (.so sous Linux), puis utilisez la fonction appropriée pour obtenir des fonctions spécifiques de la DLL et les appeler.

Recherchez sur Internet la fonction LoadLibrary() sur Windows ou dlopen() sur les systèmes Un * x/Linux pour plus d'informations.

Une alternative consiste à intégrer un interpréteur de langage de script dans votre programme. Firefox, par exemple, est implémenté en C/C++ et expose ses internes à son interpréteur JavaScript (SpiderMonkey) - de cette manière, tous les plugins Firefox peuvent être écrits en JavaScript.

Questions connexes