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

VC++ .NET Discussion :

conversion CString en char*


Sujet :

VC++ .NET

  1. #1
    Membre confirmé
    Inscrit en
    Décembre 2010
    Messages
    98
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 98
    Par défaut conversion CString en char*
    slt, comment je peux convertir un CString en char*?j'ai essayé cela mai ca n'a pas marché. Je travaille sous VC++ avec les MFC.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    CString str;
    m_adresse_ip.GetWindowTextW(str);
    const char *ip_adress;
     
     ip_adress=(char*)LPCTSTR(str);//ip_adress=str.GetBuffer()

    Merci de me répondre.

  2. #2
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 470
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 470
    Par défaut
    KISS (Keep It Simple and Stupid) !!!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    int len = m_adresse_ip.GetWindowTextLength()+1;
    LPTSTR  str = new TCHAR[len];
     
    m_adresse_ip.GetWindowText(str,len);
    CString cstr(str);
    delete[](str);
    ...

  3. #3
    Membre confirmé
    Inscrit en
    Décembre 2010
    Messages
    98
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 98
    Par défaut
    je n'ai pas compris qu'est ce que je fais après. Comment se fait la conversion de CString en char* après les changements que vous avez effectués?Merci

  4. #4
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 470
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 470
    Par défaut
    Je ne vois pas pourquoi vous avec besoin d'une CString.
    J'ai montré comment mettre le contenu d'un char* (la variable str) dans un Cstring (la variable cstr).

    Mais vous n'avez pas besoin de passer par une CString, donc juste la variable str devrait exister.

    GetWindowText remplit un char[] donc pourrait directement remplir votre "ip_adress".

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    int len = m_adresse_ip.GetWindowTextLength()+1;
    LPTSTR  ip_adress= new TCHAR[len]; 
    m_adresse_ip.GetWindowText(ip_adress,len);
    ...
    delete[](ip_adress);

  5. #5
    Membre confirmé
    Inscrit en
    Décembre 2010
    Messages
    98
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 98
    Par défaut
    j'ai essayé votre code et j'ai obtenu l'erreur suivnate:

    Erreur 1 error C2664: 'CCommunicationTCPClient::ConnectToServer'*: impossible de convertir le paramètre 1 de 'LPTSTR' en 'const char *'
    En fait,j'ai une fonction (CCommunicationTCPClient::ConnectToServer') qui doit recevoir en parametre un const char * (ip_adress) dont la valeur doit etre recupere à partie d'une interface.
    Merci de me répondre

  6. #6
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 470
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 470
    Par défaut
    Vous ne faites vraiment aucun effort.

    Bon, la réponse est dans "#define UNICODE" mais bon je vais faire dans le tout cuit, comme ça vous n'aurez pas à comprendre.

    click droit sur le projet -> Propretries -> Configuration Properties -> General -> Character Set -> Passez de "Use Unicode Character Set" à "Use Multi-Byte Character Set'

  7. #7
    Membre confirmé
    Inscrit en
    Décembre 2010
    Messages
    98
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 98
    Par défaut
    J'ai fourni un effort, j'ai passé des heures à chercher sur le net mai je n'ai pa trouvé une solution convenable . meme quand je mets "Use Multi-Byte Character Set", je trouve l'erreur suivante:

    Erreur 1 general error c101008a: Failed to save the updated manifest to the file ".\Debug\Client.exe.embed.manifest". Paramhtre incorrect.
    Y'a t-il une fonction qui me permet de copier caractere par caractere le string
    dans char*?

    Merci de m'aider

  8. #8
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 470
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 470
    Par défaut
    Moi, je tape "c101008a Failed to save the updated " dans Google et ça donne ça :

    http://connect.microsoft.com/VisualS...st-to-the-file

    Effort : 3 à 5 minutes de lectures des commentaires et contournement sur cette page.

Discussions similaires

  1. Problème de conversion de CString en char *
    Par vonemya dans le forum C++
    Réponses: 6
    Dernier message: 11/09/2007, 15h38
  2. Problème lors d'une conversion CString -> char*
    Par magicpm7 dans le forum C++
    Réponses: 11
    Dernier message: 28/08/2007, 12h44
  3. conversion string to char* et erreur ATL CString
    Par Aliveli dans le forum Visual C++
    Réponses: 5
    Dernier message: 28/11/2006, 22h55
  4. [MFC] Problème de conversion CString vers Char *
    Par Darkenshin dans le forum MFC
    Réponses: 10
    Dernier message: 02/12/2005, 14h42
  5. Conversion CString en const char*
    Par LRobi dans le forum MFC
    Réponses: 8
    Dernier message: 19/07/2005, 12h12

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