IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

Dll et héritage


Sujet :

C++

  1. #1
    Membre éclairé Avatar de seeme
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    430
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 430
    Points : 791
    Points
    791
    Par défaut 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):
    • Animal.h
    • Animal.cpp


    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

  2. #2
    Membre éprouvé
    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2009
    Messages
    552
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mars 2009
    Messages : 552
    Points : 1 060
    Points
    1 060
    Par défaut
    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 :



    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)
    Images attachées Images attachées  

  3. #3
    Membre éclairé Avatar de seeme
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    430
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 430
    Points : 791
    Points
    791
    Par défaut
    Simple, efficace, élégant, merci beaucoup

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Héritage d'une classe provenant d'une DLL
    Par hopHopHop_ dans le forum C++
    Réponses: 1
    Dernier message: 29/12/2010, 18h03
  2. Problème avec Dll et héritage de Tframe
    Par QAYS dans le forum Langage
    Réponses: 3
    Dernier message: 13/04/2010, 21h42
  3. Héritage depuis une DLL en C++ ?
    Par greg77 dans le forum C++
    Réponses: 5
    Dernier message: 04/03/2010, 20h15
  4. Héritage boucle infinie dans une dll
    Par MABB dans le forum C++
    Réponses: 11
    Dernier message: 11/06/2009, 22h29
  5. Héritage DLL C#
    Par chental dans le forum Windows Forms
    Réponses: 4
    Dernier message: 02/04/2009, 07h34

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo