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

Visual C++ Discussion :

Déclaration de pointeur


Sujet :

Visual C++

  1. #1
    Membre éclairé Avatar de Fred2209
    Inscrit en
    Octobre 2006
    Messages
    310
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 310
    Par défaut Déclaration de pointeur
    Salut,

    Dans le *.cpp de ma fenetre principale j'ai déclaré un pointeur vers une classe annexe que j'ai créé moi-même :

    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
    #include "stdafx.h"
    #include "MyProg.h"
    #include "MyprogDlg.h"
    #ifdef _DEBUG
    #define new DEBUG_NEW
    #undef THIS_FILE
    static char THIS_FILE[] = __FILE__;
    #endif
     
     
    CFonctionAnnexe* FA;
     
    /////////////////////////////////////////////////////////////////////////////
    // CAboutDlg dialog used for App About
     
    class CAboutDlg : public CDialog
    {
    public:
    	CAboutDlg();
     
    // Dialog Data
    	//{{AFX_DATA(CAboutDlg)
    	enum { IDD = IDD_ABOUTBOX };
    	//}}AFX_DATA...
    etc....
    OK, jusque là ça a toujours marché, mais maintenant pour récupérer ce pointeur dans un autre *.cpp d'une nouvelle fenetre que j'ai créé, j'ai voulu le déclaré dans MyProgDlg.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
    ////////////////////////////////////////////////////////////////////////////
    // CMyProgDlg dialog
     
    class CMyProgDlg: public CDialog
    {
    // Construction
    public:
    	CMyProgDlg(CWnd* pParent = NULL);	// standard constructor
     
            CFonctionAnnexe* FA;  
     
    // Dialog Data
    	//{{AFX_DATA(CMyProgDlg)
     
    etc.....
    J'ai bien déclaré le FonctionAnnexe.h...

    Et là 144 erreurs....

    Et je sais que normalement c'est possible alors je ne comprend pas, si c'est déjà arrivé à quelqu'un...

    Merci...

  2. #2
    Membre Expert
    Avatar de la drogue c'est mal
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    2 253
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 2 253
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    #include "stdafx.h"
    #include "MyProg.h"
    #include "MyprogDlg.h"
    #ifdef _DEBUG
    #define new DEBUG_NEW
    #undef THIS_FILE
    static char THIS_FILE[] = __FILE__;
    #endif
     
     
    CFonctionAnnexe* FA;
    beurk


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    J'ai bien déclaré le FonctionAnnexe.h...
     
    Et là 144 erreurs....
     
    Et je sais que normalement c'est possible alors je ne comprend pas, si c'est déjà arrivé à quelqu'un...
     
    Merci...
    c'est ce qui arrive quand on déclare des variables globales...

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    100
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Décembre 2006
    Messages : 100
    Par défaut
    Ajoute ceci à ton fichier FonctionAnnexe.h affin qu'il ne soit déclaré qu'une seul et unique fois même s'il est inclu à d'autres endroits.

    Ca devrait résoudre ton problème.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    #ifndef _FONCTIONANNEXE_H_  // 1ere ligne du fichier FonctionAnnexe.h
    #define _FONCTIONANNEXE_H_ // 2eme ligne du fichier FonctionAnnexe.h
     
    ...
     
    #endif // Derniere ligne du fichier FonctionAnnexe.h

  4. #4
    Membre éclairé Avatar de Fred2209
    Inscrit en
    Octobre 2006
    Messages
    310
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 310
    Par défaut
    Non en fait ça fait toujours les mêmes erreurs...

    Mais merci quand même pour ton aide...

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    100
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Décembre 2006
    Messages : 100
    Par défaut
    Quelles sortes d'erreurs as-tu ?

  6. #6
    Membre Expert
    Avatar de la drogue c'est mal
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    2 253
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 2 253
    Par défaut
    probablement que FA a une double déclaration

  7. #7
    Membre éclairé Avatar de Fred2209
    Inscrit en
    Octobre 2006
    Messages
    310
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 310
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    error C2143: syntax error : missing ';' before '*'
    error C2501: 'CFonctionAnnexe' : missing storage-class or type specifiers
    error C2501: 'FI' : missing storage-class or type specifiers
    error C2065: 'FI' : undeclared identifier
    error C2440: '=' : cannot convert from 'class CFonctionInterface *' to 'int'
     
    error C2227: left of '->CreateDevice' must point to class/struct/union
    Et il y en a 144...

  8. #8
    Membre éprouvé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    100
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Décembre 2006
    Messages : 100
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    error C2143: syntax error : missing ';' before '*'
    error C2501: 'CFonctionAnnexe' : missing storage-class or type specifiers
    Où as-tu fais ton include de FonctionAnnexe.h ?
    Car il ne reconnait pas ta classe CFonctionAnnexe.

  9. #9
    Membre confirmé
    Inscrit en
    Avril 2002
    Messages
    180
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 180
    Par défaut
    tu veut comme membre de ta classe myProg le pointeur global CFonctionAnnexe* FA ???

    si CFonctionAnnexe* FA est global tu n'a pas de besoin qu'il soit membre de myProg tu peut l'acceder directement avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    extern CFonctionAnnexe* FA;
    oubien tu te declare un CFonctionAnnexe* m_FA qui vas pointer sur le pointeur global
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    myProg::myProg()
    {
         extern CFonctionAnnexe* FA;
         m_FA=FA;
    }
    assure toit quand meme que FA soit construit

    bon courage

  10. #10
    Membre éclairé Avatar de Fred2209
    Inscrit en
    Octobre 2006
    Messages
    310
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 310
    Par défaut
    Merci pour vos réponses...

    J'essayerai dès que possible et je vous tiendrais au courant...

  11. #11
    Membre éclairé Avatar de Fred2209
    Inscrit en
    Octobre 2006
    Messages
    310
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 310
    Par défaut
    Citation Envoyé par philippe V
    tu veut comme membre de ta classe myProg le pointeur global CFonctionAnnexe* FA ???

    si CFonctionAnnexe* FA est global tu n'a pas de besoin qu'il soit membre de myProg tu peut l'acceder directement avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    extern CFonctionAnnexe* FA;

    Tu veux dire que je le déclare comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    extern CFonctionAnnexe* FA;
    comme variable global au début de MyProgDlg.cpp ?

  12. #12
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 391
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  13. #13
    Membre éclairé Avatar de Fred2209
    Inscrit en
    Octobre 2006
    Messages
    310
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 310
    Par défaut
    Merci Médinoc pour ce lien car il est une mine d'or !!!

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

Discussions similaires

  1. classe sans déclaration et pointeur de fonction
    Par Asmod_D dans le forum C++
    Réponses: 3
    Dernier message: 27/06/2010, 16h39
  2. Déclaration de pointeur de fonction et structure
    Par ShaiLeTroll dans le forum Delphi
    Réponses: 28
    Dernier message: 05/04/2007, 10h48
  3. Réponses: 8
    Dernier message: 06/03/2006, 14h44
  4. [déclaration de variable]Pointeur
    Par ronan99999 dans le forum C
    Réponses: 6
    Dernier message: 04/10/2005, 15h53
  5. Réponses: 4
    Dernier message: 08/02/2005, 20h47

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