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 :

UnicodeString Borland XE2 2012 [Débutant]


Sujet :

C++Builder

  1. #1
    Membre régulier
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juillet 2009
    Messages
    114
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Juillet 2009
    Messages : 114
    Points : 73
    Points
    73
    Par défaut UnicodeString Borland XE2 2012
    bonsoir @ tous ,

    je dois migrer une veille petite application en XE2 . J'ai vu qu'on parlait plus que de UnicodeString . Je souhaiterai avoir quelques conseils avant de démarrer ?

    G vu du Wchar_t * , Wstring , UnicodeString .
    Quelle est la différence entre Wstring et UnicodeString ?

    quels sont les type à utiliser pour cela et même pour l'avenir ( nouvelle application ) ?

    Merci beaucoup pour vôtre aide

  2. #2
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 426
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 426
    Points : 24 790
    Points
    24 790
    Par défaut
    Comment as-tu porté de ton projet ?
    Si tu as ouvert un ancien projet et converti, les appels aux API Windows reste ANSI avec char
    Si tu as récréé un projet sans modifier le mappage, par défaut les API Windows passe en Wide avec wchar_t

    Normalement en C++Builder, on utilise le type String et Char hérité de Delphi, ces types ont été implicitement migré de AnsiString\AnsiChar vers UnicodeString\WideChar (2 octets)

    Ne pas confondre Char et char, ce dernier lui reste sur un octet !

    Après tout dépend ton code, si tu as manipulé beaucoup de chaine en code C avec strlen, getmem, alloc ... tu risques d'avoir bcp de boulot (les bugs ne pouvant apparaître qu'au RunTime)
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  3. #3
    Membre régulier
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juillet 2009
    Messages
    114
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Juillet 2009
    Messages : 114
    Points : 73
    Points
    73
    Par défaut
    merci ShaiLeTroll pour ta réponse .

    En effet j'ai voulu importer un ancien projet avec beaucoup de manip de chaines de caractères .
    La tache ne va pas être simple
    G bien mappé en Tchar Wchar__t . Et en effet c coince pas mal

    Faut il passer tous les char* en wchar_t* et les string en wstring ?

    Quelle est la différence entre Wstring et UnicodeString ? le compilateur me signale une différence entre les 2 ?

    @+

  4. #4
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 426
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 426
    Points : 24 790
    Points
    24 790
    Par défaut
    string et wstring sont les types C++ (strict), je ne les ai jamais utilisé, j'ignore le travail que tu devras effectuer !
    Wstring ? ça existe aussi ça ? fait attention à la casse !

    Ils sont équivalent à AnsiString (String de D3 à 2007) et UnicodeString (String de D2009 à XE2) qui eux sont des encapsulations objet des Chaines Delphi qui ont une gestion mémoire avec compteur de référence assez particulière !

    Lorsque utilises la VCL, tu utilisais String ou AnsiString
    Pour le COM, c'était WideString qui encapsule le BSTR

    Comment fais-tu la passerelle entre std::string et String ?
    Ou alors, tu utilisais bien String avec S majuscule et dans ce cas c'est devenu implicitement UnicodeString

    Citation Envoyé par parabole33 Voir le message
    En effet j'ai voulu importer un ancien projet avec beaucoup de manip de chaines de caractères .
    La tache ne va pas être simple
    Tout dépend la façon de les manipuler et leur type, tu sembles confus sur les types que tu utilisais !
    Évidemment en C++Builder, tout est conçu pour utiliser les types Delphi de la VCL et non les types Boost\STD\STL
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  5. #5
    Membre régulier
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juillet 2009
    Messages
    114
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Juillet 2009
    Messages : 114
    Points : 73
    Points
    73
    Par défaut
    je voulais dire la différence entre wstring et UnicodeString ?

    Donc si j'utilise wchar_t * , wstring , je suis dans le vrai ???
    Et pour la VCL UnicodeString ?

    Je sais je suis long à comprendre ....

    dsl .....

  6. #6
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 426
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 426
    Points : 24 790
    Points
    24 790
    Par défaut
    Citation Envoyé par parabole33 Voir le message
    je voulais dire la différence entre wstring et UnicodeString ?
    La différence c'est que ce n'est pas la même bibliothèque
    Les deux sont Unicode, wstring c'est C++ strict, UnicodeString c'est la VCL C++Builder

    Citation Envoyé par parabole33 Voir le message
    Donc si j'utilise wchar_t * , wstring , je suis dans le vrai ???
    Et pour la VCL UnicodeString ?
    Pour ma part, j'utilise UnicodeString au plus que possible
    Comme, j'ai migré un projet, je suis resté ANSI pour les API, donc je conserve des AnsiString et la méthode c_str()
    Pour les DLL externes, j'utilise aussi AnsiString.c_str(), char[] ou char*

    En C++Builder, utilise UnicodeString tout l'IDE est conçu pour cela !

    pour wchar_t[] ou wchar_t*, pour les API Windows, mais tu peux aussi utiliser c_str() de UnicodeString


    Tu utilisais quoi avant string ou String ?
    Je ne connais pas string ou wstring du C++ strict, comme je suis Delphiste, je suis habitué au String, WideString, AnsiString et UnicodeString et toutes les fonctions RTL\VCL associées !
    Tout dépend tes connaissances, à la base, tu es développeur C\C++ généraliste ou alors tu n'as QUE du C++Builder ?
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  7. #7
    Membre régulier
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juillet 2009
    Messages
    114
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Juillet 2009
    Messages : 114
    Points : 73
    Points
    73
    Par défaut
    grand merci !!!

    G compris .

    J'utilisai char* et string .
    Pour la vcl AnsiString et c_str() . Je n'es jamais utilisé String .
    Comme c un gros boulot , il faut partir sur une bonne base !!!

    Récemment g fait une Dll c++ pour appel en Delphi .Quelques problèmes au niveau des signatures pour certain type de variables ( Surtout pour le passage de tableau de Byte ) mais bon cela à l'air OK .
    Reste des problèmes de libéralisation de la mémoire en retour de fonction .

    Je n'es que C++ Builder et mon niveau est très très très loin en dessous du tiens Mais c'est un domaine très passionnant .

    Merci beaucoup

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

Discussions similaires

  1. Compatibilité Borland C++ 6 sous Windows Server 2012 64 bits
    Par bachelre dans le forum Windows Serveur
    Réponses: 2
    Dernier message: 11/02/2015, 15h18
  2. TSHFILEOpstruct et UnicodeString avec XE2
    Par Pasqualini dans le forum C++Builder
    Réponses: 12
    Dernier message: 11/10/2012, 20h17
  3. Outils, cours et NOUVEAUX tutoriels pour Borland C++Builder
    Par hiko-seijuro dans le forum C++Builder
    Réponses: 10
    Dernier message: 12/03/2006, 23h33
  4. Tutoriels et liens pour le Borland Database Engine
    Par Community Management dans le forum Paradox
    Réponses: 0
    Dernier message: 25/03/2002, 11h23

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