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![]()
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![]()
LPSTR est un char*
Ca devrait fonctionner.CString s = ta_chaine;
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![]()
Tu es en Character Set : "Use Unicode character set" ?
Utilise un CStringA pour ne plus avoir de caractère Unicode et fonctionner en ANSI
Pas toujours...Envoyé par Mayti4
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::stringEnvoyé par Rafy
Ben il l'a pas dis, mais ce que j'ai dis n'est pas faux tout de même![]()
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.
pour le moment j'ai definis mon projet pour qu'il ne soit pas en Unicode mais il faudrat que je trouve une solution
Partager