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 :

Déclarer une variable globale


Sujet :

MFC

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 15
    Points : 8
    Points
    8
    Par défaut Déclarer une variable globale
    Bonjour!

    Voila je cherche à déclarer un tableau de short en tant que varfiable globale (dans le but de piloter un périphérique bus 1 fil via port série).

    J'aimerai savoir comment faire, sachant que j'ai déja mis dans mon .h:
    short Tab_Temp[8]; (nom de ma variable)

    en public et que ça marche pas...

    merci à vous pour vos réponses!

  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
    Points : 17 323
    Points
    17 323
    Par défaut
    salut,
    bien que ça ne soit pas terrible en prog C++ ,je te donne la manip
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    // dans un .h commun a tous les sources. Ex:"mydefs.h"
    #ifdef DEFVAR
    short Tab_Temp[8];
    #else
    extern short Tab_Temp[8];
    #endif
    dans un seul .cpp et avant l'include contenant la definition precedente
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    #define DEFVAR 1
    #include "mydefs.h"
    si tu utilises les MFC ,tu peux declarer ton tableau dans la classe d'application et utiliser AfxGetApp() pour y acceder.


  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 15
    Points : 8
    Points
    8
    Par défaut
    merci!!!
    je vais tester ça de ce pas! =)

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 15
    Points : 8
    Points
    8
    Par défaut
    j'ai un problème en fait là lol

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    main.obj : error LNK2005: "short * Tab_Temp" (?Tab_Temp@@3PAFA) already defined in CAPTEURS.OBJ
    voila ce que j'ai comme erreur quand je copie :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    #define DEFVAR 1 
    #include "mydefs.h"
    dans mes 2 cpp (main+methodes)

    Quand je le met dans mon .h j'ai la même erreur, quand je le met que dans un cpp j'ai:

    Tab_Temp non defini.

    Que faire? J'ai merdé où???
    Mezrci encore pour tout

  5. #5
    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
    Points : 17 323
    Points
    17 323
    Par défaut
    si tu me relis j'ai dis que le define doit etre dans UN SEUL .cpp !
    le fait de faire define DEFVAR 1 declare la variable dans ce source
    pour les autres sources c'est la partie #else qui sera prise en compte donc le extern de ton tableau.

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 15
    Points : 8
    Points
    8
    Par défaut
    C'est bon ça marche je te remercie!!!!!!!!!!!!!!!!!!!!!!!!!!


  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
    Points : 17 323
    Points
    17 323
    Par défaut
    si c'est ok pense a mettre résolu sur ton post avec le bouton

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 43
    Points : 24
    Points
    24
    Par défaut
    bien que ça ne soit pas terrible en prog C++ ,je te donne la manip
    Comment peux t-on faire autrement sinon ??

    si tu utilises les MFC ,tu peux declarer ton tableau dans la classe d'application et utiliser AfxGetApp() pour y acceder.
    Je n'es pas tres bien compris ou mettre la variable, int par exemple, pour qu'on la voit avec la fonctione AfxGetApp() ??
    Pourra t-on acceder a la variable en question qui se situe dans la classe principale d'un project dialog based (CProjetDlg) depuis une autre classe ??
    Merci et a bientot

  9. #9
    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
    Points : 17 323
    Points
    17 323
    Par défaut
    tu declares ta variable dans la classe d'application celle qui est derivée de CWinApp.
    ensuite tu fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    CMyApp *TheApp= static_cast<CMyApp *>(AfxGetApp());
    TheApp->m_MyGlobalVar=10; // etc..

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

Discussions similaires

  1. [XL-MAC 2011] Comment déclarer une variable globale + améliorations
    Par beegees dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 14/07/2013, 15h23
  2. [CS5] Déclarer une variable global à partir d'une fonction
    Par Stalk3R dans le forum ActionScript 3
    Réponses: 1
    Dernier message: 09/04/2012, 17h09
  3. déclarer une variable globale:getappdata
    Par miss_angel dans le forum Interfaces Graphiques
    Réponses: 1
    Dernier message: 16/02/2008, 08h24
  4. Déclarer une variable globale au projet
    Par delphi+ dans le forum Delphi
    Réponses: 6
    Dernier message: 22/02/2007, 19h43

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