2010-02-02 11 views
0

Je vais rendre mon application extensible. Où puis-je lire des informations sur l'écriture de programmes prenant en charge les plugins? C++Faire une application étendue (avec des plugins)

+1

Ceci est beaucoup trop large pour être répondu. Dans quel environnement cette application fonctionne-t-elle? Les fenêtres? Linux? A quoi ça parle? Qui l'utilise? – bmargulies

+0

Voir http://stackoverflow.com/questions/708527/implementing-a-plugin-system-in-c-or-c, http://stackoverflow.com/questions/1233040/why-should-i-setup- a-plugin-interface-en-c-au lieu-de-c, http://stackoverflow.com/questions/785480/good-patterns-for-acc-plugin-based-system –

Répondre

1

Une architecture de plug-in est ce dont vous avez besoin pour rechercher et lire. Une réponse SO ne va pas aider au-delà de fournir quelques liens parasites. Je vais essayer d'expliquer aussi brièvement que possible: Typiquement, les plug-ins sont un ensemble de bibliothèques dynamiques que l'application hôte charge (généralement au démarrage, parfois avec un retard de chargement à des fins d'efficacité). Ils deviennent alors partie de l'application et se comportent comme s'ils étaient un composant natif/de base. Par conséquent, vous devez également repenser l'architecture et la conception des modules de votre application. Voici une série de questions que vous devrez répondre:

  • Comment appelez-vous le cœur?
  • Que voulez-vous que les plug-ins fassent?
  • De quel ensemble de fonctionnalités de base les plug-ins auront-ils besoin?
  • Si votre application est multi-plateforme, vous devez vous assurer que vos API de plug-in sont également multi-plateformes, ce qui implique généralement un certain travail.
  • Voulez-vous que les plug-ins modifient l'interface utilisateur? Cela ouvre toute une nouvelle boîte de surprises.
1

votre meilleur pari est à la recherche de quelque chose comme Lua. Il vous permettra d'avoir des plug-ins multi-plateforme et de charger du code sans avoir à démarrer et redémarrer votre application. Le chargement de code dynamique en C++ est très spécifique à une plate-forme et non portable sans une énorme quantité de travail.

Questions connexes