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 :

variable globale dans une dll MFC


Sujet :

MFC

  1. #1
    En attente de confirmation mail
    Inscrit en
    Juin 2006
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 24
    Points : 12
    Points
    12
    Par défaut variable globale dans une dll MFC
    salut à tous,

    voilà mon pb :

    j'ai une classe A dans une dll particulière avec une variable globale.
    Dans A.h, il y a
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    extern Type AFX_EXT_CLASS var;
    et dans A.cpp, il y a
    si dans mon appli je crée une classe B qui dérive de A et donc fait un include de A.h et qui utilise cette variable, tout est ok.
    Si je reprend exactement la meme classe B dans une autre dll, tout compile bien (il voit bien la déclaration extern du A.h) mais pb de link :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    symbole externe non résolu Type var
    il ne voit pas la déclaration qui est dans A.cpp

    Est-ce qu'il y a quelque chose de particulier à faire pour une variable globale entre 2 dll? ou est-ce que j'ai mal fait ma variable et que dans le cas de l'appli ça marche mystérieusement?
    ça fait un moment que je suis dessus et j'avoue que si quelqu'un avait un élément de réponse, ça m'aiderait bcp.
    merci

  2. #2
    Membre éclairé Avatar de homeostasie
    Homme Profil pro
    Inscrit en
    Mai 2005
    Messages
    939
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 939
    Points : 862
    Points
    862
    Par défaut
    Est-ce qu'il y a quelque chose de particulier à faire pour une variable globale entre 2 dll?
    Disons que ce n'est pas logique. Une dll est réalisé pour être indépendante, c'est à direautonome.
    De plus, une des règles de la création d'une "library" est l'absence de variables globales....

  3. #3
    En attente de confirmation mail
    Inscrit en
    Juin 2006
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 24
    Points : 12
    Points
    12
    Par défaut
    oui, je suis d'accord la variable globale n'est normalement utilisée que dans la dll où A est définie. Mais je me suis retrouvé à avoir besoin d'une classe qui en hérite et qui n'a pas lieu d'être dans cette dll alors je ne vois pas comment faire autrement.
    Est-ce que cela veut dire qu'on ne peut pas avoir de variable globale entre les 2 dll?

  4. #4
    Membre éclairé Avatar de homeostasie
    Homme Profil pro
    Inscrit en
    Mai 2005
    Messages
    939
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 939
    Points : 862
    Points
    862
    Par défaut
    Est-ce que cela veut dire qu'on ne peut pas avoir de variable globale entre les 2 dll?
    On ne doit même pas utiliser par principe les variables globales dans une dll! Entre deux dll, c'est le principe même des libraires (dynamiques ou statiques) qui tombe à l'eau. A ne pas faire!

    A part cela, je ne sais si l'erreur vient de là mais ça ne m'étonnerait pas que cela soit lié.
    Puis, je crains des comportemts indéfinis avec une telle implémentation...

  5. #5
    En attente de confirmation mail
    Inscrit en
    Juin 2006
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 24
    Points : 12
    Points
    12
    Par défaut
    ok merci, je vais voir à me démmerder autrement. Le pb est qu'on développe du code puis un beau jour on se dit "tiens, on peut réutiliser ce code là pour telle autre application et aussi celle la... et en plus c indépendant, bon ben on transforme ça en dll" et après c'est jamais vraiment propre et on n'a pas le temps (ni l'envi) d'assainir tout ça donc on continue comme ça.
    enfin, je trouverai bien quéque chose.
    merci

Discussions similaires

  1. Variable globale dans une DLL
    Par CTotophe85 dans le forum C++
    Réponses: 3
    Dernier message: 09/09/2008, 17h40
  2. Utilisation d'une variable publique dans une DLL
    Par Delphi-ne dans le forum Delphi
    Réponses: 13
    Dernier message: 05/12/2006, 13h19
  3. Variables globales dans une fonction?
    Par Death83 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 26/07/2006, 01h53
  4. Réponses: 6
    Dernier message: 07/04/2006, 01h10
  5. Variables globales dans une classe
    Par vanitom dans le forum C++
    Réponses: 16
    Dernier message: 14/01/2005, 14h40

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