Pb conversion CString string pour affichage ds combobox
phenix6942
Messages postés8Date d'inscriptionsamedi 14 avril 2007StatutMembreDernière intervention30 mai 2007
-
30 mai 2007 à 16:29
Loki6
Messages postés286Date d'inscriptiondimanche 27 novembre 2005StatutMembreDernière intervention27 décembre 2009
-
30 mai 2007 à 17:52
bonjour à tous
je realise un projet mfc dans lequel j utilise plusieurs boites de dialogue.
dans une de ces boites je souhaite afficher des string dans une combobox.
pour cela je dois convertir des string en Cstring et inversement.
mon probleme est le suivant :
lors de la conversion Cstring en string,
<dir>CString szNomPrenom;
string NomPrenom(szNomPrenom);
apres compilation, le message d erreur suivant apparait:
c:\documents and settings\hp_propriétaire\bureau\itracking3\itracking\dialprofil.cpp(112) : error C2664: 'std::basic_string<_Elem,_Traits,_Ax>::basic_string(std::basic_string<_Elem,_Traits,_Ax>::_Has_debug_it)' : impossible de convertir le paramètre 1 de 'CString' en 'std::basic_string<_Elem,_Traits,_Ax>::_Has_debug_it'
<dir>with
[
_Elem=char,
_Traits=std::char_traits<char>,
_Ax=std::allocator<char>
]Aucun opérateur de conversion définie par l'utilisateur disponible qui puisse effectuer cette conversion, ou l'opérateur ne peut pas être appelé
Loki6
Messages postés286Date d'inscriptiondimanche 27 novembre 2005StatutMembreDernière intervention27 décembre 20092 30 mai 2007 à 17:09
salut,
pour convertir de string à CString : CString MyCString(Mystring); // avec Mystring de type string.
pour convertir de CString à string : string Mystring = MyCString.GetBuffer(); // avec MyCString de type CString.
je crois que c'est ça essaie. si d'autres veulent corriger...
c:\documents and settings\hp_propriétaire\bureau\itracking3\itracking\dialprofil.cpp(116) : error C2440: 'initialisation' : impossible de convertir de 'wchar_t *' en 'std::basic_string<_Elem,_Traits,_Ax>'
with
[
_Elem=char,
_Traits=std::char_traits<char>,
_Ax=std::allocator<char>
]
Aucun constructeur n'a pu prendre le type de source, ou la résolution de la surcharge du constructeur était ambiguë
phenix6942
Messages postés8Date d'inscriptionsamedi 14 avril 2007StatutMembreDernière intervention30 mai 2007 30 mai 2007 à 17:45
j'ai fais le changement dans les propriétés.
j'ai encore une erreur :
<dir>c:\documents and settings\hp_propriétaire\bureau\itracking3\itracking\dialprofil.cpp(117) : error C2440: 'initialisation' : impossible de convertir de 'unsigned short *' en 'std::basic_string<_Elem,_Traits,_Ax>'
with
[
_Elem=char,
_Traits=std::char_traits<char>,
_Ax=std::allocator<char>
]
Aucun constructeur n'a pu prendre le type de source, ou la résolution de la surcharge du constructeur était ambiguë
Loki6
Messages postés286Date d'inscriptiondimanche 27 novembre 2005StatutMembreDernière intervention27 décembre 20092 30 mai 2007 à 17:52
roooooh, essaie d'utiliser la fonction WideCharToMultiByte cf. MSDN pour transformer la chaine issue de GetBuffer de wchar en char car apparemment le problème est là.
annule également la manip dans les propriétés, pour revenir à l'erreur précédente.
sinon si ça ne te dérange pas outre mesure, tu peux aussi travailler en unicode, en créant un wstring au lieu d'un string comme ceci :