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 :

Créer un objet accessible depuis n'importe quelle classe


Sujet :

MFC

  1. #1
    Membre éclairé
    Inscrit en
    Avril 2007
    Messages
    281
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 281
    Par défaut Créer un objet accessible depuis n'importe quelle classe
    Bonjour,


    Grosse question de newbie j'avoue, mais je rencontre un problème.
    Le logiciel que je développe, doit se voir créer un seul et unique Objet "CGestionBd", permettant des opération sur base de donnée.
    Je souhaiterais que cet objet soit accessible partout, et surtout , dans des autres classe de mon application.

    J'ai donc créé cet objet dans le .h en public de la classe dlg de ma boite de dialogue.
    Mais l'objet créer n'ai pas disponible dans mes autres classes

    -->erreur : Undeclared Identifier !

    Je suis sous visual C++6

    Le problème est bete je sais, mais je suis bloqué !

    Merci a tous !

  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,
    tu dois mettre le .h de cette classe dans tous les sources y accédant.

    la variable doit être déclarée une seule fois, par exemple dans le source de la classe d'application .
    dans tous les autres sources tu devras déclarer extern Myclass monObjet.
    voir aussi ce post
    enfin tout ceci ressemble a un singleton

  3. #3
    Membre éclairé
    Inscrit en
    Avril 2007
    Messages
    281
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 281
    Par défaut
    Merci de ta réponse.
    Je ne comprend pas, j'ai toujours une erreur de link.

    Je vais expliquer mon cas:

    Une classe CGestionBd
    Une classe CVerification
    Une classe CMonProgDlg // class de la boite de dilaogue principale.

    Je souhaiterais "créer" un objet unique CGestionBD qui puisse etre accessible de partout, et notamment de pouvoir l'utiliser dans la classe CVerification.

    J'ai donc inclus CGestionBd.h dans CMonProgDlg.h et dans CVerification.h
    J'ai créer mon objet "CGestionBd" dans CMonProgDlg en PUBLIC

    Dans CVerification, j'ai fais un "extern monObjetBd", et plus rien, quand je tappe le "." visual c++ ne me propose aucune de mes méthodes !

    Voila voila

    Merciii beaucoup !

  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
    re,
    tout ça ne nous dis pas quelle est l'erreur rencontrée ...
    intellisens et le link n'on rien a voir .
    si l'include de cette classe n'est pas placé dans le repertoire includes du projet tu n'auras pas les informations de la classe.
    ou encore si le .h de cette classe n'est pas inclus dans le source ça ne fonctionnera pas non plus....

  5. #5
    Membre éclairé
    Inscrit en
    Avril 2007
    Messages
    281
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 281
    Par défaut
    Mais je fais bien les Include comme il le faut ! autant dans mes .cpp que dans mes .h !

    Et je viens de me rendre compte que en prime, je n'arrive pu a créer d'autre objets dans un autre .h, ( et meme si ce point h a le include nécéssaire).

    C'est trop bizarre, VS6 me joue des tours, je psychote la depuis ce matin !lol

    Merci

  6. #6
    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
    Citation Envoyé par Nixeus
    Mais je fais bien les Include comme il le faut ! autant dans mes .cpp que dans mes .h !

    Et je viens de me rendre compte que en prime, je n'arrive pu a créer d'autre objets dans un autre .h, ( et meme si ce point h a le include nécéssaire).
    Visiblement non ...,
    Citation Envoyé par Nixeus
    C'est trop bizarre, VS6 me joue des tours, je psychote la depuis ce matin !lol
    Merci
    non non ,c'est toi qui te joue des tours VC n'y est pour rien...
    tant que tu nous donneras pas un bout de code , un message d'erreur précis, on ne pourra rien pour toi.

  7. #7
    Membre éclairé
    Inscrit en
    Avril 2007
    Messages
    281
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 281
    Par défaut
    Effectivement Farscape tu as raison, j'avais donc mal déclaré ma variable

    Merci a toi pour ton aide !

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 08/12/2013, 09h25
  2. Tri rapide des objets Access depuis 2007
    Par milou_puce dans le forum Access
    Réponses: 4
    Dernier message: 23/05/2013, 17h29
  3. Réponses: 1
    Dernier message: 25/10/2010, 19h54
  4. Réponses: 3
    Dernier message: 24/06/2009, 17h59
  5. Réponses: 3
    Dernier message: 08/02/2008, 10h23

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