Notre industrie est en calcul distribué parallèle haute performance. Nous avons une application C++ non gérée en cours de développement en utilisant Visual Studio 2008.Unmanaged C++: Comment charger dynamiquement du code?
Notre application (plus comme un framework) est supposée être capable de charger dynamiquement du code (algorithmes) développé par des tierces parties (il peut y avoir beaucoup de dll) qui est conforme à notre spécification d'interface, et appelle le code chargé pour obtenir des résultats.
penser comme vous voulez appeler une fonction sin (x), mais il y a beaucoup de différentes implémentations de sin (x) que vous pouvez utiliser.
J'ai quelques questions que je suis très nouveau dans ce domaine de charger dynamiquement du code:
- est dll (bibliothèque de liens dynamiques) la réponse à ce type d'exigence?
- Si le 3e parti a utilisé un autre type de IDE pour créer la dll par rapport à la mienne (Eclipse CDT dire, C++ Builder, Visual C++ 6.0, etc.), serait le dll travailler encore avec ma demande?
- Notre application est censé fonctionner multiplateforme et (devrait être en mesure de fonctionner sous Linux), serait utilise QLibrary la façon la plus logique de abstraire tout le chargement dll spécifique à la plateforme?
- (FACULTATIF) Y a-t-il des problèmes imprévus que je pourrais rencontrer?
J'ai lu sur Wiki, et il me semble que la plate-forme de programmation évolue à partir de DLL -> COM -> COM + -> .NET? Si oui, dois-je simplement utiliser COM à la place? – sivabudh
Cela dépend vraiment de la complexité. Le développement COM peut être douloureux, OTOH COM résout certains des problèmes que vous rencontrerez de toute façon lorsque l'interface devient plus complexe. Si l'API est plutôt simple et que vous n'avez aucune expérience préalable avec COM, je déconseille. – peterchen