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++ Discussion :

[Debutant]Point sur TStringList


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 114
    Par défaut [Debutant]Point sur TStringList
    Bonjour,

    je ne comprend pas pourquoi mon code est faux !

    c'est une erreur de debutant mais la notion de pointeur, j'ai bcp de mal a l'assimilé. quand je pense l'avoir compris j'ai un exemple qui me montre que non lol.

    voila mon cas :

    j'ai une classe TCSA qui est dans un dll :

    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
     
      IMPORT_EXPORT class TCSA
      {
         public :
        __fastcall TCSA(TComponent* Owner);
        __fastcall ~TCSA();
        char* __fastcall RechercheInfosCSA(AnsiString filenameCSA);
        char* __fastcall RechercheVariantes(AnsiString filenameCSA);
     
        TFichier*    mpInfosCSA;
        TComposant*  mpComposantCSA;
        TStringList* mpVariantes;
        TStringList* mpPartName;
     
        private :
     
        TStringList* mpFichierCSA;
      };
    j'ai une autre classe dans la meme dll :

    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
     
      IMPORT_EXPORT class TXML
      {
        public :
        __fastcall TXML(TComponent* Owner);
        char* __fastcall CreerFichier(void);
        char* __fastcall SetVersion(AnsiString filenameXML, AnsiString versionCSA, AnsiString versionPRE, AnsiString versionPRO, AnsiString versionIND);
        char* __fastcall SetVariantes(AnsiString filenameXML, TStringList *listvariante);
        char* __fastcall GetNom(void);
     
         private :
     
        char* NomFichierXML;
        TSaveDialog *SaveDialog1;
        TComponent  *mpXMLOwner;
        TStringList *mpContenu;
    et j'ai une j'utilise la fonction SetVariantes dont je voudrais passer en parametre Le TstringList* variante de ma classe CSA qui a été rempli prealablement pas ma fonction RechercheVariante de ma classe CSA

    Mon constructeur de classe CSA est le suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    __fastcall TCSA::TCSA(TComponent* Owner)
    {
      mpInfosCSA = new TFichier;
      mpComposantCSA = new TComposant;
      mpVariantes = new TStringList;
      mpPartName = new TStringList;
    }
    je crée une isntance de chaque classe dans mon programme comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
      XML = new TXML(this->Owner);
      CSA = new TCSA(this->Owner);
    j'ai donc acces a tous ce qui est public de chaque classe.

    Je recherche mes variantes (sans aucun souci)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CSA->RechercheVariantes(CheminCSALblEd->Text);
    ensuite j'ai essyé de les affiché en fesant un ShowMessage ca marche comme il faut.

    et c'est la que ca se complique (pour moi):

    je fais appel à mon fichier XML qui est comme il faut et je veux donner le TStringList* mpVariantes dans ma classe CSA en parametres.

    En fesant comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    XML->SetVariantes((AnsiString)XML->GetNom(),(CSA->mpVariantes))
    il me compile sans probleme mais apres jai des erreurde linkage.

    en fesant comme ça ( ce que je pensais la bonne methode) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    XML->SetVariantes((AnsiString)XML->GetNom(),&(CSA->mpVariantes))
    Il em dit que je donne un TStringList ** à la place d'un TstringList *

    Mais le & permet bien de donné l'adresse non ?


    Merci de m'aider les pointeurs me rendent fou !

  2. #2
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    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 395
    Par défaut
    mpVariantes est déjà un pointeur.
    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.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 114
    Par défaut
    Je veux bien mais ca me fait un "link error".

    Du coup je sais pas quoi fair !

  4. #4
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    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 395
    Par défaut
    Nous donner plus de détails sur l'erreur d'édition de liens en question ?
    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.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 114
    Par défaut
    oui, mais elle est vraiment bizar !

    Des fois elle ce montre, des fois non !!! c'est vraiment bizar !


    [Lieur Erreur] Fatal: Error detected (C:\1518)
    [Lieur Erreur] Fatal: Access violation. Link terminated.
    elle est pas mal hein ? lol

  6. #6
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    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 395
    Par défaut
    Wow! Le linker qui plante?
    Je n'avais encore jamais vu ça !
    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.

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

Discussions similaires

  1. [Debutant] Point d'inflexion sur courbe
    Par nicoarrf dans le forum LabVIEW
    Réponses: 3
    Dernier message: 13/01/2011, 11h40
  2. [Debutant] Livres sur l'algo?
    Par mike55 dans le forum Algorithmes et structures de données
    Réponses: 5
    Dernier message: 20/04/2004, 19h56
  3. [debutant]renvoyer sur une jsp depuis une servlet
    Par omega dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 23/03/2004, 11h55
  4. calcul d'un point sur la base d'un cone
    Par Admin dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 18/11/2003, 21h18
  5. [debutant] Questions sur 1 futur projet
    Par cyrull22 dans le forum XML/XSL et SOAP
    Réponses: 3
    Dernier message: 28/04/2003, 21h49

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