PB Conversion de CString vers LPSTR

cs_ben1964 Messages postés 12 Date d'inscription samedi 6 décembre 2003 Statut Membre Dernière intervention 20 octobre 2005 - 4 mars 2004 à 16:11
cs_vieuxLion Messages postés 455 Date d'inscription samedi 26 octobre 2002 Statut Membre Dernière intervention 6 avril 2004 - 5 mars 2004 à 09:16
j'ai une fonct. API Windows qui necessite un arg. de type LPSTR et la variable que j'ai est de type CString J'ai essayer
ça :
LPSTR a;
CString ma_variable;
ma_variable="OK";
a=(char*) &ma_variable;

pas de pb a la compil. mais ça marche pas.

Merci de votre aide
A voir également:

3 réponses

cs_vieuxLion Messages postés 455 Date d'inscription samedi 26 octobre 2002 Statut Membre Dernière intervention 6 avril 2004 8
4 mars 2004 à 21:47
bonjour,

essaie ceci,
char* a;
CString ma_variable;
ma_variable="OK";
a=ma_variable.GetBuffer(256);
0
cs_ben1964 Messages postés 12 Date d'inscription samedi 6 décembre 2003 Statut Membre Dernière intervention 20 octobre 2005
4 mars 2004 à 22:16
Merci VieuxLion.
J'ai deja trouvé la solution et c'est presque la même
chose :

LPSTR a = new char[ma_variable.GetLength()+1];
strcpy(a, ma_variable);

Et ça n'etait pas facile a trouver....
Merci beaucoup.
0
cs_vieuxLion Messages postés 455 Date d'inscription samedi 26 octobre 2002 Statut Membre Dernière intervention 6 avril 2004 8
5 mars 2004 à 09:16
Excellent, mais là tu effectue une copie du buffer.
Si les données sont à modifier c'est plus raisonnable que GetBuffer/ReleaseBuffer

une autre manière encore plus simple, utiliser l'opérateur LPCTSTR de la classe CString :
CString ma_variable = "CaMarcheAussi";
printf( "Et ca, %s\n", (LPCTSTR)ma_variable );
0
Rejoignez-nous