Plug-in les systèmes en C++ sont difficiles parce que les ABI n'est pas correctement défini, et chaque compilateur (ou la version de celui-ci) suit ses propres règles. Toutefois, COM sur Windows montre qu'il est possible de créer un minimum de système de plug-in qui permet aux programmeurs avec différents compilateurs de créer des plugins pour une application hôte à l'aide d'une interface simple.
Soyons pratique, et de laisser la norme C++, ce qui n'est pas très utile à cet égard, de côté pendant une minute. Si je veux écrire une application pour Windows et Mac (et éventuellement Linux) qui prend en charge le C++ plugins, et si je veux donner plug-in auteurs d'un assez grand choix de compilateurs (disons moins de 2 ans les versions de Visual C++, GCC ou Intel C++ compiler), quelles sont les fonctionnalités de C++ pourrais-je compter?
Bien sûr, je suppose que les plugins serait écrit pour une plateforme spécifique.
Sur le dessus de ma tête, voici quelques fonctionnalités C++, que je pense, avec ce que je pense est la réponse:
- vtable mise en page, utiliser des objets à travers les classes abstraites? (oui)
- types intégrés, les pointeurs? (oui)
- les structures, les syndicats? (oui)
- des exceptions? (no)
- extern "C" fonctions? (oui)
- stdcall non-extern "C" fonctions avec construit-dans les types de paramètre? (oui)
- non stdcall non-extern "C" fonctions définies par l'utilisateur avec les types de paramètre? (no)
Je vous serais reconnaissant de toute l'expérience que vous avez dans cette zone que vous pourriez partager. Si vous connaissez un succès modéré application qui a un C++ système de plug-in, c'est trop cool.
Carl