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 :

Quel #include pour AnsiString... et string?


Sujet :

C++Builder

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2007
    Messages : 38
    Par défaut Quel #include pour AnsiString... et string?
    Bonsoir.

    Je suis assez désorienté concernant les AnsiString, et la doc en ligne de C++ Builder 2007 ne m'aide pas beaucoup à résoudre mon problème de compilation. Ma question est:

    Quel #include faut-il mettre pour utiliser les AnsiString?

    D'une manière générale comment savoir quel #include mettre pour une fonction donnée?

    Merci d'avance.
    Felipe.

  2. #2
    Membre émérite
    Avatar de bandit boy
    Profil pro
    Inscrit en
    Février 2006
    Messages
    916
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 916
    Par défaut
    De base, tout y est déjà.

    Si tu déclares une AnsiString, tout fonctionne. C'est comme un int, tu ne le déclare pas, c'est reconnue par le compilateur.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2007
    Messages : 38
    Par défaut
    Hum, hum, pourtant, en fonction des include que j'ajoute (ex. vcl.h, string.h, iomanip.h), ça compile ou non, et je ne vois pas la logique...

  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
    C'est pourtant simple:
    • <vcl.h> : AnsiString est une classe spécifique à la VCL, il est donc probable que ce soit ce header-là le bon...
    • <string.h> : Obsolète. Utiliser <string> si tu as besoin de la classe std::string de la bibliothèque standard C++.
    • <iomanip.h> : Obsolète. utiliser <iomanip> si tu as besoin des manipulateurs de flux de la bibliothèque standard C++.

    bandit boy: Ben non. AnsiString est une classe, et nécessite d'être déclarée.
    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
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Par défaut
    Salut
    Je rejoind bandit boy, dans BCB " vcl " est automatiquement declare dans l'entete donc pas de probleme avec AnsiString
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    #include <vcl.h>
    #pragma hdrstop
    #include "Unit1.h"
    //---------------------------------------------------------------------------
    #pragma package(smart_init)
    #pragma resource "*.dfm"
    TForm1 *Form1;
    //---------------------------------------------------------------------------
    __fastcall TForm1::TForm1(TComponent* Owner)
            : TForm(Owner)
    {
    }
    Je pense que la question a ete mal formulee et surtout sans un morceau de code pour aider a repondre, utilisation de BCB en RAD ou en mode console ?

  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
    Oui, la ligne#include <vcl.h> est automatiquement insérée dans le code source à la création.
    Mais en aucun cas la classe AnsiString n'est considérée comme un type de base "comme un int, tu ne le déclare pas, c'est reconnue par le compilateur"...
    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.

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2007
    Messages : 38
    Par défaut
    Citation Envoyé par Médinoc Voir le message
    C'est pourtant simple:
    • <vcl.h> : AnsiString est une classe spécifique à la VCL, il est donc probable que ce soit ce header-là le bon...
    • <string.h> : Obsolète. Utiliser <string> si tu as besoin de la classe std::string de la bibliothèque standard C++.
    • <iomanip.h> : Obsolète. utiliser <iomanip> si tu as besoin des manipulateurs de flux de la bibliothèque standard C++.

    bandit boy: Ben non. AnsiString est une classe, et nécessite d'être déclarée.
    Merci Médinoc, tes messages sont très éclairants. Premièrement, je ne connaissais pas la différence entre string et string.h, iomanip et iomanip.h. Deuxièmement, je me doutais un peu que AnsiString était une classe spécifique à la VCL, mais où est-ce expliqué?

    blondelle, ma question était mal formulée, c'est vrai, excuse le débutant. Le contexte est bien en RAD et pas en console, mais le fichier que je n'arrive pas à compiler est celui d'une Unit.cpp crée par New/Unit, donc pas associé à une form. Il n'y avait donc pas de #include <vcl.h> dedans.

    Encore une question: j'ai à la fois des string et des AnsiString. Que choisir entre les deux? Si j'utilise les AnsiString, je restreins la portabilité de mes sources, non?

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2007
    Messages : 38
    Par défaut
    Médinoc, <string> ne fonctionne pas, j'utilise donc <string.h>, idem pour <iomanip>.

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

Discussions similaires

  1. [RegEx] Quel pattern pour supprimer les derniers <br> d'une string?
    Par rekam dans le forum Langage
    Réponses: 4
    Dernier message: 04/11/2012, 00h55
  2. Réponses: 3
    Dernier message: 04/02/2012, 09h03
  3. QUEL "include" POUR affichage du texte
    Par sali2801 dans le forum C
    Réponses: 7
    Dernier message: 12/03/2011, 12h31
  4. Réponses: 0
    Dernier message: 16/09/2008, 11h49
  5. Quel outil pour du développement Client/Serveur (Win XP) ?
    Par jey_bonnet dans le forum Débats sur le développement - Le Best Of
    Réponses: 5
    Dernier message: 02/11/2002, 14h57

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