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

MFC Discussion :

[MFC] Comment h�riter d'une classe qui h�rite d'une MFC


Sujet :

MFC

  1. #1
    Membre confirm�
    Inscrit en
    Mars 2005
    Messages
    79
    D�tails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 79
    Par d�faut [MFC] Comment h�riter d'une classe qui h�rite d'une MFC
    Bonjour,

    J'ai des probl�mes avec l'une de mes classes qui h�rite de l'une de mes classes qui h�rite des MFC. Je me demande donc s'il y a une m�thode particuli�re pour cr�er une telle classe.

    Voici ce que j'ai fait :

    J'ai cr�e une classe ClasseP�re qui h�rite de CEditView. Lorsque j'ai cr�� une nouvelle classe j'ai donc sp�cifi� qu'elle �tait une : "MFC class" qui h�ritait de fa�on pulic de ClasseP�re.

    Ensuite j'ai cr�e une classe qui h�rite de ClasseP�re que j'ai appel�e ClasseFils. J'ai donc stipul� qu'elle �tait une : "generic class" qui h�ritait de fa�on pulic de ClasseP�re.

    Dans l'un des splitters de mon interface, si j'ins�re une vue de type ClassePere comme suit :


    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
     
    this->m_wndSplitterWnd.CreateView(1, 0,
    		RUNTIME_CLASS(ClassePere), CSize(taille, taille), pContext)
    il n'y a pas de probl�me.

    Par contre si je fais :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
     
    this->m_wndSplitterWnd.CreateView(1, 0,
    		RUNTIME_CLASS(ClasseFils), CSize(taille, taille), pContext)
    j'obtiens l'erreur suivante :

    MainFrm.obj : error LNK2001: unresolved external symbol "public: static struct CRuntimeClass const ClasseFils::classClasseFils" (?classClasseFils@ClasseFils@@2UCRuntimeClass@@B)
    Debug/ValidProd3.exe : fatal error LNK1120: 1 unresolved externals
    Error executing link.exe.

    autrement dit, le compilateur n'est pas tr�s content et moi non plus :-(

    Je me demandais donc s'il y avait une m�thode particuli�re pour cr�er des classes qui h�ritent de classes h�ritant de MFC?

    Pouvez-vous m'aider???
    merci

  2. #2
    R�dacteur
    Avatar de farscape
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par d�faut
    salut,oui
    il ne faut pas oublier la macro ECLARE_DYNCREATE(NameOfMyClass)
    dans le .h sous le constructeur

    et dans le .cpp
    IMPLEMENT_DYNCREATE(NameOfMyClass, NameOfMyParentClass)

    regarde les sources et .h generes par Visual sur une fenetre
    de type View tu comprendras .


  3. #3
    Membre confirm�
    Inscrit en
    Mars 2005
    Messages
    79
    D�tails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 79
    Par d�faut j'ai une autre erreure
    J'ai ajout� les lignes que tu m'avais indiqu�es, mais cette fois-ci, c'est � la compilation que j'ai une erreure :

    Linking...
    TestFils.obj : error LNK2001: unresolved external symbol "public: virtual struct CRuntimeClass * __thiscall TestFils::GetRuntimeClass(void)const " (?GetRuntimeClass@TestFils@@UBEPAUCRuntimeClass@@XZ)
    Debug/ValidProd3.exe : fatal error LNK1120: 1 unresolved externals
    Error executing link.exe.

    J'ai oubli� de faire quelque chose???[/code]

  4. #4
    R�dacteur
    Avatar de farscape
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par d�faut
    montre ton .h

  5. #5
    Membre confirm�
    Inscrit en
    Mars 2005
    Messages
    79
    D�tails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 79
    Par d�faut et voil� le .h
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
     
    // TestFils.h: interface for the TestFils class.
    //
    //////////////////////////////////////////////////////////////////////
     
    #if !defined(AFX_TESTFILS_H__EE3D1AA4_9281_497B_8D12_D0AE88FC59FC__INCLUDED_)
    #define AFX_TESTFILS_H__EE3D1AA4_9281_497B_8D12_D0AE88FC59FC__INCLUDED_
     
    #if _MSC_VER > 1000
    #pragma once
    #endif // _MSC_VER > 1000
     
    #include "TestPere.h"
     
    class TestFils : public TestPere  
    {
    protected:
    	TestFils();           // protected constructor used by dynamic creation
    	DECLARE_DYNCREATE(TestFils)
     
    // Attributes
    public:
     
    // Operations
    public:
     
    // Overrides
    	// ClassWizard generated virtual function overrides
    	//{{AFX_VIRTUAL(TestFils)
    	protected:
    	virtual void OnDraw(CDC* pDC);      // overridden to draw this view
    	//}}AFX_VIRTUAL
     
    // Implementation
    protected:
    	virtual ~TestFils();
    #ifdef _DEBUG
    	virtual void AssertValid() const;
    	virtual void Dump(CDumpContext& dc) const;
    #endif
     
    	// Generated message map functions
    protected:
    	//{{AFX_MSG(TestFils)
    		// NOTE - the ClassWizard will add and remove member functions here.
    	//}}AFX_MSG
    	DECLARE_MESSAGE_MAP()
    };
     
    #endif // !defined(AFX_TESTFILS_H__EE3D1AA4_9281_497B_8D12_D0AE88FC59FC__INCLUDED_)

  6. #6
    Membre confirm�
    Inscrit en
    Mars 2005
    Messages
    79
    D�tails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 79
    Par d�faut une solution...
    Bon ben... je n'ai toujours pas compris pourquoi �a ne marchait pas, mais j'ai trouv� un truc qui marche :

    1) Je cr�� ind�pendamment TestPere et TestFils qui toutes deux h�ritent de CEditView.

    2) Puis dans TestFils je remplace toutes les occurences de CEditView par TestPere.

    je ne vois pas bien en quoi cela est diff�rent, mais �a a l'air de beaucoup mieux marcher.

    Merci de m'avoir aid�.

  7. #7
    R�dacteur
    Avatar de farscape
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par d�faut
    salut,
    quand tu fais des classes deriv�es d'une classe fenetre MFC ,il faut s'assurer que toute les classes descendantes disposent du jeux de macros cit�es precedement.
    dans le .h et le .cpp.

  8. #8
    Membre confirm�
    Inscrit en
    Mars 2005
    Messages
    79
    D�tails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 79
    Par d�faut ok
    Merci farscape pour tous ces �claircissements.

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. [ATL] Acc�der � un attribut d'une classe qui h�rite d'une classe abstraite
    Par chekaoui dans le forum Eclipse Modeling
    R�ponses: 0
    Dernier message: 22/07/2014, 14h32
  2. [PDO] Syntaxe pour une classe qui h�rite de PDO
    Par fey dans le forum PHP & Base de donn�es
    R�ponses: 6
    Dernier message: 18/10/2009, 20h58
  3. R�ponses: 1
    Dernier message: 13/05/2009, 09h41
  4. R�ponses: 2
    Dernier message: 22/04/2008, 11h13
  5. R�ponses: 14
    Dernier message: 14/03/2005, 09h16

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