-
Dll et héritage
Bonsoir à tous,
J'ai un projet en c++ sous visual studio composé d'un programme principal et d'une dll (la liaison est faite dynamiquement, est testée et fonctionne).
Version courte édulcorée:
Dans le programme principal (qui contient le main):
Dans un projet dll, je souhaite hériter de cette classe pour créer Chat.
J'inclus bien Animal.h dans la dll.
Malgré cela j'ai une erreur de link LNK2019 et LNK1120 au moment de construire ma dll...
Ma question est donc: peut-on, dans une dll, hériter d'une classe déclarée dans le programme principal?
Version moins édulcorée
Je suppose que je prend un peu le problème à l'envers, et que donc mon architecture n'est pas la bonne. Voilà exactement mon raisonement:
Mon projet principal est un moteur de jeu/simu temps réel. Il utilise un arbre d'entités (Entity). La logique de jeu/simu est défini dans une dll. Ainsi avec le même moteur, simplement en changeant de dll, on peut lancer une autre simulation.
Il faut donc que dans la dll, on soit libre d'implémenter sa propre version de ces entités. C'est pour cela que j'essaye de créer un héritage dans la dll d'une classe définie dans le programme principal.
Merci d'avance
Seeme
-
1 pièce(s) jointe(s)
Bonjour,
Je te conseille de t'inspirer de la création de plugin avec Qt, tu verras qu'il est possible d'hériter une classe dans une DLL.
Je pense que tu fais juste face à un problème d'organisation des sources et des compilations.
Concrètement, tu devrais te retrouver avec quelques choses dans ce style :
http://www.developpez.net/forums/att...1&d=1363133595
Avec :
- Mon programme : programme principal (lié à MonAPI)
- MonAPI : bibliothèque du programme (contient la définition de la classe mère des plugins)
- MonPlugin : Une DLL contenant une fonction capable de créer une instance dérivée de la classe mère (lié à MonAPI)
-
Simple, efficace, élégant, merci beaucoup :)