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

C++/CLI Discussion :

Instance en C++


Sujet :

C++/CLI

  1. #1
    Membre éclairé
    Inscrit en
    Novembre 2008
    Messages
    357
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 357
    Par défaut Instance en C++
    Bonjour,

    J'ai crée une classe dans vs2008, et j'ai instancié un objet qui est utilisé dans deux fichiers .cpp

    Le problème est que lorsque je compile, des erreurs link sont affichées qui m'ont disent que l'instance est redéfinie

    Donc ma question est comment partager une instance entre deux fichiers source

    Merci.

  2. #2
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 463
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 463
    Par défaut
    On ne partage pas, les variables globales, c'est mal.

    Avant de faire ce genre de cochonnerie, pensez à vous servir des paramètres dans les fonctions et les méthodes.
    Si les valeurs doivent persister plus d'un appel, pensez aux champs dans les objets et aux paramètres dans leurs constructeurs.

  3. #3
    Membre éclairé
    Inscrit en
    Novembre 2008
    Messages
    357
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 357
    Par défaut
    Voilà comment déclarer ma classe:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    classe A
    {
    private:
               x,y,z;
    public:
               A();
              ~A();
              void m1(const std::string x1, const std::string y1);
     },
    A a;
    Et j'ai deux fichiers source, j'ai met dans l'un des fichiers l'implémentation de méthode et dans l'autre l'appel de méthode

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    a.m1("fichier1.txt","fichier2.txt");
    Finalement j'ai inclut mon fichier .h dans les deux sources,

    et voilà la liste d'erreurs:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    1>error LNK2005: "class A a" (?a@@3VA@@A) already defined in main.obj
    1>main.obj : error LNK2019: unresolved external symbol "public: __thiscall A::A(void)" (??0A@@QAE@XZ) referenced in function "void __cdecl `dynamic initializer for 'a''(void)" (??__EA@@YAXXZ)
    1>error LNK2001: unresolved external symbol "public: __thiscall A::A(void)" (??0A@@QAE@XZ)
    1>fatal error LNK1120: 1 unresolved externals

  4. #4
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 463
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 463
    Par défaut
    Virez-moi cette putain de variable globale "a", ligne 10.
    Créez l'objet dans une fonction, le "main" si vous voulez, et passez cette variable en paramètre de vos fonctions et méthodes.

    Vous trouverez sur le net des trucs pour partager des variables globales, mais c'est à éviter comme la peste.

Discussions similaires

  1. Réponses: 3
    Dernier message: 16/10/2003, 10h22
  2. Communiquer entre plusieurs instances d'applications
    Par bourinator dans le forum C++Builder
    Réponses: 5
    Dernier message: 28/09/2003, 11h24
  3. [VB6] [DLL] DLL à instance unique
    Par HPJ dans le forum VB 6 et antérieur
    Réponses: 9
    Dernier message: 19/09/2003, 08h07
  4. [VB6]Passer le focus à une instance précedente
    Par Jeremiah dans le forum VB 6 et antérieur
    Réponses: 13
    Dernier message: 16/09/2003, 10h01
  5. [] plusieurs instances de form avec leur contexte ?
    Par Seb-31 dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 11/04/2003, 13h56

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