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

Cannot convert Ansistring to char* [Débutant(e)]


Sujet :

C++Builder

  1. #1
    Membre à l'essai
    Inscrit en
    Mai 2004
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 33
    Points : 17
    Points
    17
    Par défaut Cannot convert Ansistring to char*
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
        FILE *stream;
        char *s;
     
       /* open a file */
     
       s = Main->Edit_nomfichier->Text;
       stream = fopen(s, "w+");
    Cannot convert Ansistring to char*

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
        FILE *stream;
        char *s;
     
       /* open a file */
     
       s = "Main->Edit_nomfichier->Text";
       stream = fopen(s, "w+");
    si je mets entre guillemets j'obtiens ceci :
    [Linker Error] Unresolved external '_Form1' referenced from PROJECT2.OBJ
    [Linker Error] Unresolved external 'TForm1::' referenced from PROJECT2.OBJ


    En gros j'aimerais récupérer les attributs d'un objet type AnsiString et le convertir en Char, comment faire ?

  2. #2
    Membre éclairé
    Avatar de Interruption13h
    Inscrit en
    Août 2005
    Messages
    603
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 603
    Points : 786
    Points
    786
    Par défaut
    Salut !

    Tu peux essayer de faire :

    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
    19
    FILE *stream;
    
    //char *s;
     
    /* open a file */
     //s = Main->Edit_nomfichier->Text;
    
    stream = fopen(Main->Edit_nomfichier->Text.c_str(), "w+");
    
    if(stream!=NULL)
         {
         //traitement du fichier..
         }
    
    else
         {
         ShoxMessage("Erreur d'ouverture de fichier >:-(");
         }
    Aussi, il y a l'option <Rechercher> dans ce forum, donc vérifi d'abord si ton problème n'a pas été déja posté



    Bonne chance !

  3. #3
    Membre à l'essai
    Inscrit en
    Mai 2004
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 33
    Points : 17
    Points
    17
    Par défaut
    merci pour ta solution interuption13h :
    Maintenant j'aimerais comprendre mon autre erreur.

    [Linker Error] Unresolved external '_Form1' referenced from PROJECT2.OBJ
    [Linker Error] Unresolved external 'TForm1::' referenced from PROJECT2.OBJ


    a quoi correspondent ces erreurs ?
    Que veulent elles dirent ?

    Elles apparaissent lorsque je modifie le code tel quel :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    FILE *stream;
        char *s;
     
       /* open a file */
     
       //s = "Main->Edit_nomfichier->Text.c_str()";
       stream = fopen(Main->Edit_nomfichier->Text.c_str(), "w+");
       if (stream == NULL) ShowMessage("fopen failed\n");
     
    //   s = Main->Chemin->Text;

  4. #4
    Nouveau membre du Club

    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 31
    Points : 35
    Points
    35
    Par défaut
    bonjour,

    cela peut signifier que tu n'as pas fait les include correctement
    par exemple si "Unit1.cpp" contient la Form1, et que tu appelles cette Form1 à partir d'une autre unité, par exemple "Unit2.cpp", il faut ecrire "include Unit.h" dans "Unit2.cpp"...

  5. #5
    Membre à l'essai
    Inscrit en
    Mai 2004
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 33
    Points : 17
    Points
    17
    Par défaut
    Mais ce ne fait pas des doubles INCLUDE ?
    A quoi ca sert de l'include une deuxieme fois puisque le linkeur l'as déja ajouté une premiere fois dans l'éxécutable a quoi cela sert il donc de l'ajouter une deuxieme fois ?

  6. #6
    Responsable Magazine

    Avatar de pottiez
    Homme Profil pro
    Développeur C++
    Inscrit en
    Novembre 2005
    Messages
    7 152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur C++
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2005
    Messages : 7 152
    Points : 22 087
    Points
    22 087
    Par défaut
    Ca ne l'ajoute pas une deuxieme fois à l'exe, l'exe c'est ce qu'il a deja mis grace au #define, donc il ne le rajoutera pas, par contre ca permet de dire que l'Unit2 connait l'Unit1.

  7. #7
    Membre à l'essai
    Inscrit en
    Mai 2004
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 33
    Points : 17
    Points
    17
    Par défaut
    j'ai fait les INCLUDE de part et d'autre et rien n'y fait.

  8. #8
    Membre éclairé Avatar de chamamo
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    588
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 588
    Points : 735
    Points
    735
    Par défaut
    Citation Envoyé par kaizer
    j'ai fait les INCLUDE de part et d'autre et rien n'y fait.
    j'avais ce probleme à la création non dynamique de ma fiche
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TForm1 *Form1=new Form1(NULL);
    pour résoudre le probleme j'ai enlever la déclaration
    du fichier "Unit1.cpp"

    pour ne paq faire une double déclaration de Form1 j'espere que cela poura t'aider

  9. #9
    Membre à l'essai
    Inscrit en
    Mai 2004
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 33
    Points : 17
    Points
    17
    Par défaut
    Bon alors voila le problème résolu en fait :


    Au lieu d'avoir :

    J'avais :

    J'avais mis Main pour avoir une fenetre Main pour la reconnaitre facilement, apparament le compilateur n'as pas apprécié.

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 03/10/2012, 11h45
  2. Réponses: 2
    Dernier message: 28/06/2011, 14h09
  3. Convertion AnsiString en TString
    Par Jimy Neutron dans le forum C++Builder
    Réponses: 17
    Dernier message: 09/02/2010, 22h08
  4. cannot convert 'std::string' to 'System::String ^'
    Par broadhead dans le forum MFC
    Réponses: 1
    Dernier message: 14/06/2005, 11h37

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