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 :

comment convertir un System::String (ou String *) en char *?


Sujet :

C++

  1. #1
    Membre confirmé
    Inscrit en
    Décembre 2005
    Messages
    134
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 134
    Par défaut comment convertir un System::String (ou String *) en char *?
    bonjour tout le monde,

    je pense que le titre est suffisement explicit pour ne pas pas détailler ce que je cherche à faire.

    je cherche une personne pouvant m'aiguiller sur la facon de crere une fonction me permettant d'obtenir cette conversion. voir meme si quelqu'un connais une méthode permettant de réaliser cette manipulation.

    merci d'avance.

  2. #2
    Membre éprouvé Avatar de Blowih
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 122
    Par défaut
    salut,
    s'il sagi de std::string:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    std::string st="toto";
    st.c_str();
    tu peux aussi faire un recherche ou voir la FAQ, ça aide

  3. #3
    Membre confirmé
    Inscrit en
    Décembre 2005
    Messages
    134
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 134
    Par défaut
    en fait je ne sais pas si c'est un std. mais ce que je peux dire c'est que cette string est récupérée sur un textBox en visualStudio .net.

    et comme j'ai pas le prog avec moi je ne peux pas consulter la msdn pour avoir plus de détails.

  4. #4
    Membre éprouvé Avatar de Blowih
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 122
    Par défaut
    string est récupérée sur un textBox en visualStudio .net.
    je pense que ce n'est pas un std::string, mai plutot un CString des MFC,
    si c'est le cas va sur le forum Visual C++

  5. #5
    Membre confirmé
    Inscrit en
    Décembre 2005
    Messages
    134
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 134
    Par défaut
    En fait le String que je souhaite convertir en char * est un System::String

  6. #6
    Rédacteur/Modérateur
    Avatar de JolyLoic
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    5 463
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 5 463
    Par défaut
    http://msdn2.microsoft.com/en-us/library/ms235631.aspx
    http://support.microsoft.com/default.aspx?scid=kb;en-us;311259
    Ma session aux Microsoft TechDays 2013 : Développer en natif avec C++11.
    Celle des Microsoft TechDays 2014 : Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
    Et celle des Microsoft TechDays 2015 : Visual C++ 2015 : voyage à la découverte d'un nouveau monde
    Je donne des formations au C++ en entreprise, n'hésitez pas à me contacter.

  7. #7
    CGi
    CGi est déconnecté
    Expert confirmé
    Avatar de CGi
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    1 061
    Détails du profil
    Informations personnelles :
    Localisation : France, Allier (Auvergne)

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 061
    Par défaut
    J'ai comme l'impréssion que c'est le String du Framwork .Net ?
    Site : http://chgi.developpez.com

    Pourquoi faire simple quand on peut faire compliqué ? (Jacques Rouxel)

  8. #8
    Membre émérite Avatar de reggae
    Profil pro
    Inscrit en
    Août 2005
    Messages
    773
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2005
    Messages : 773
    Par défaut
    J'en ai aussi l'impression...

  9. #9
    Rédacteur/Modérateur
    Avatar de JolyLoic
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    5 463
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 5 463
    Par défaut
    Sauf que cette conversation a eu lieu en juin 2005, donc avant la sortie du C++/CLI (VC++8.0, novembre 2005) qui change pas mal de choses sur l'interface C++ / C++/CLI.

    Qu'est-ce qui ne va pas dans les liens que j'ai fournis ?
    Ma session aux Microsoft TechDays 2013 : Développer en natif avec C++11.
    Celle des Microsoft TechDays 2014 : Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
    Et celle des Microsoft TechDays 2015 : Visual C++ 2015 : voyage à la découverte d'un nouveau monde
    Je donne des formations au C++ en entreprise, n'hésitez pas à me contacter.

  10. #10
    Membre émérite Avatar de reggae
    Profil pro
    Inscrit en
    Août 2005
    Messages
    773
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2005
    Messages : 773
    Par défaut
    Rien rien, il sont tout à fait adapté!

  11. #11
    Membre confirmé
    Inscrit en
    Décembre 2005
    Messages
    134
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 134
    Par défaut
    c'est bon, j'ai trouvé réponse a mon problème au travers de cette instruction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    char * adresseIP = (char*)(void*)Marshal::StringToHGlobalAnsi(textBox_IP->Text);

  12. #12
    Membre éclairé Avatar de Higestromm
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    516
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 516
    Par défaut
    Pourquoi ce genre de solution ne m'étonne pas d'une bib made by Microsoft ?

    Pense a cocher ton message comme résolu

  13. #13
    Rédacteur/Modérateur
    Avatar de JolyLoic
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    5 463
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 5 463
    Par défaut
    Et bien, moi, elle m'étonne, puisque la proposition officielle de Microsoft est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
        String ^orig = gcnew String("Hello, World!");
     
        pin_ptr<const wchar_t> wch = PtrToStringChars(orig);
     
        // Convert to a char*
        size_t origsize = wcslen(wch) + 1;
        const size_t newsize = 100;
        size_t convertedChars = 0;
        char nstring[newsize];
        wcstombs_s(&convertedChars, nstring, origsize, wch, _TRUNCATE);
        strcat_s(nstring, " (char *)");
        cout << nstring << endl;
    Alors que sa solution alloue de la mémoire de manière non standard... Et demande donc une désallocation non standard...

    A noter que pour convertir en wstring (qui est le type naturel d'une telle convertion en C++), c'est plus simple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
        String ^orig = gcnew String("Hello, World!");
        pin_ptr<const wchar_t> wch = PtrToStringChars(orig);    
        wstring basicstring(wch);
    Mais bon, pour ce faire, il aurait fallu lire la doc...
    Ma session aux Microsoft TechDays 2013 : Développer en natif avec C++11.
    Celle des Microsoft TechDays 2014 : Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
    Et celle des Microsoft TechDays 2015 : Visual C++ 2015 : voyage à la découverte d'un nouveau monde
    Je donne des formations au C++ en entreprise, n'hésitez pas à me contacter.

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

Discussions similaires

  1. comment convertir un objet URL en String ?
    Par _LittleFlea_ dans le forum Langage
    Réponses: 3
    Dernier message: 19/10/2009, 16h16
  2. Comment convertir du XML dans un String -> DataSet
    Par jimbolelephan dans le forum C#
    Réponses: 2
    Dernier message: 12/06/2008, 15h28
  3. Réponses: 9
    Dernier message: 31/05/2006, 17h11
  4. Réponses: 10
    Dernier message: 04/05/2006, 23h55
  5. Comment convertir de l'hexadecimale au string ASCII ?
    Par Battosaiii dans le forum Algorithmes et structures de données
    Réponses: 1
    Dernier message: 17/03/2006, 19h04

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