Bonjour,
Comment convertir un "CString" en "char *" :?:
Version imprimable
Bonjour,
Comment convertir un "CString" en "char *" :?:
La méthode GetString() peut peut-être t'aider.
Exemple :
Ca renvoie un PCXSTR, mais je ne suis pas sûr de ce que l'on n'a le droit de faire avec.Code:
1
2
3 CString tmp; printf("%s\n", tmp.GetString());
Pour plus d'info, tu devrais aller sur le forum Visual C++.
J'ai beau chercher mais je ne vois tjrs pas les différences entre CString et String... Quelqu'un pourrait m'éclairer? 8O
string est une classe de la STL, qui contient certaines fonctionalités utiles
CString est une classe Microsoft, qui contient d'autres fonctionalités utiles liées entre autres au système de ressources de Windows, ainsi qu'une méthode qui permet d'écrire dedans exactement comme avec printf() (chose que la STL semble avoir renié: il faut avoir boost pour trouver l'équivalent)
Pour convertir une CString en char * il faut utiliser la méthode GetBuffer().
Mais pour convertir en const char *, pas grand chose de plus simple : il y a un opérateur de conversion de type, ce qui permet de faire sans problème:
Code:
1
2
3
4
5
6 CString csMessage; const char *sczMessage; csMessage.Format("blabla %d", 3); sczMessage = csMessage; //pas de &
Merci pour l'info!
Si jamais pour convertir une string en char* voilà un lien:
http://c.developpez.com/faq/cpp/?pag...TRINGS_to_char
:P
merci pour votre aide :wink:
La foction " GetString() " n'existe pas :!: :!:Citation:
Envoyé par CroustRyu
Ma question est : CString => char*Citation:
Envoyé par reggae
Comment utiliser la méthode GetBuffer() :?:Citation:
Envoyé par Médinoc
MSDN.
(attention le "you should pass 1 for the length to ReleaseBuffer" est un bug, c'est -1)
(Jeter aussi un coup d'oeil à ReleaseBuffer)
Le fonctionnement pour CString n'est pas le même que pour string???
non, pas du tout. Et les fonctions proposées ne sont pas les mêmes, non plus.
Et aussi, la classe string est une instance du template basic_string, alors que CString est une classe simple.
Ok merci :D
Le multipost est interdit, merci de respecter les règles à l'avenir.
La suite ici :
http://www.developpez.net/forums/viewtopic.php?t=409759