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 :

[C++]LPSTR to CString


Sujet :

C++

  1. #1
    Membre confirm� Avatar de Cirdan Telemnar
    Profil pro
    �tudiant
    Inscrit en
    Avril 2006
    Messages
    130
    D�tails du profil
    Informations personnelles :
    �ge : 44
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Avril 2006
    Messages : 130
    Par d�faut [C++]LPSTR to CString
    j'ai un petit peu de difficult� avec l'Unicode et l'Ansi depuis que je suis sous Visual Studio 2005

    je sais comment passer de CString a LPSTR mais l'enverse je trouve pas

  2. #2
    Membre chevronn� Avatar de Mayti4
    Inscrit en
    F�vrier 2004
    Messages
    442
    D�tails du profil
    Informations forums :
    Inscription : F�vrier 2004
    Messages : 442
    Par d�faut
    LPSTR est un char*

    CString s = ta_chaine;
    Ca devrait fonctionner.

  3. #3
    Membre confirm� Avatar de Cirdan Telemnar
    Profil pro
    �tudiant
    Inscrit en
    Avril 2006
    Messages
    130
    D�tails du profil
    Informations personnelles :
    �ge : 44
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Avril 2006
    Messages : 130
    Par d�faut
    ca fonctionne mais ca m'affiche pas ce que je veux car je communique avec un peripherique exterieur qui m'envoie via un LPSTR une chaine Ansi et ca m'affiche en Unicode

  4. #4
    Membre �clair�
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    731
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 731
    Par d�faut
    Tu es sous Visual 2005 ?

  5. #5
    Membre confirm� Avatar de Cirdan Telemnar
    Profil pro
    �tudiant
    Inscrit en
    Avril 2006
    Messages
    130
    D�tails du profil
    Informations personnelles :
    �ge : 44
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Avril 2006
    Messages : 130
    Par d�faut
    ouep

  6. #6
    Membre �clair�
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    731
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 731
    Par d�faut
    Tu es en Character Set : "Use Unicode character set" ?
    Utilise un CStringA pour ne plus avoir de caract�re Unicode et fonctionner en ANSI

  7. #7
    Membre chevronn� Avatar de Rafy
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    415
    D�tails du profil
    Informations personnelles :
    �ge : 41
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 415
    Par d�faut
    Citation Envoy� par Mayti4
    LPSTR est un char*
    Pas toujours...
    TCHAR c'est un char quand UNICODE n'est pas d�fini, mais c'est un w_tchar quand UNICODE est d�fini.
    Donc si ton application accepte l'unicode, alors quand UNICODE est d�fini alors LPSTR n'est pas un char* mais un w_tchar*... Et avec �a tu ne peux pas construire une std::string.
    Il faut que tu construise une std::wstring

  8. #8
    Membre �clair�
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    731
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 731
    Par d�faut
    Citation Envoy� par Rafy
    Pas toujours...
    TCHAR c'est un char quand UNICODE n'est pas d�fini, mais c'est un w_tchar quand UNICODE est d�fini.
    Donc si ton application accepte l'unicode, alors quand UNICODE est d�fini alors LPSTR n'est pas un char* mais un w_tchar*... Et avec �a tu ne peux pas construire une std::string.
    Il faut que tu construise une std::wstring
    Je pense que Cidran utilise les string des MFC et pas les std::string

  9. #9
    Membre chevronn� Avatar de Rafy
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    415
    D�tails du profil
    Informations personnelles :
    �ge : 41
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 415
    Par d�faut
    Ben il l'a pas dis, mais ce que j'ai dis n'est pas faux tout de m�me

  10. #10
    Membre �clair�
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    731
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 731
    Par d�faut
    En effet

  11. #11
    Expert �minent
    Avatar de M�dinoc
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 397
    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 397
    Par d�faut
    Si, c'est faux: LPSTR est TOUJOURS un char *.
    c'est LPTSTR qui change...

    Quant aux CString, cela d�pend de la version de Visual studio : Sous Visual 6, elles sont toujours en TCHAR.
    Sous les versions sup�rieures, on a le template CStringT et les constructeurs font la conversion: quel que soit le type de la cha�ne en entr�e, la CString en sortie sera en TCHAR...

    PS: Windows utilise la macro UNICODE, MFC et le C standard utilisent _UNICODE.
    Un conseil: Toujours commencer par s'assurer que les deux ou aucun sont d�finis.
    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.

  12. #12
    Membre confirm� Avatar de Cirdan Telemnar
    Profil pro
    �tudiant
    Inscrit en
    Avril 2006
    Messages
    130
    D�tails du profil
    Informations personnelles :
    �ge : 44
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Avril 2006
    Messages : 130
    Par d�faut
    pour le moment j'ai definis mon projet pour qu'il ne soit pas en Unicode mais il faudrat que je trouve une solution

Discussions similaires

  1. conversion : VARIANT FAR* URL vers CString
    Par kam dans le forum MFC
    R�ponses: 2
    Dernier message: 29/03/2004, 13h32
  2. [MFC][WinCE] Longueur maxi de CString?
    Par Sunny dans le forum MFC
    R�ponses: 3
    Dernier message: 28/01/2004, 14h40
  3. R�ponses: 2
    Dernier message: 21/01/2004, 17h59
  4. LPSTR vs CHAR*
    Par Heaven dans le forum Windows
    R�ponses: 3
    Dernier message: 10/12/2003, 00h45
  5. Convertion de type VARIANT � type CString
    Par j_grue dans le forum MFC
    R�ponses: 2
    Dernier message: 07/11/2002, 14h18

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