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 - 3 mars 2004 à 23:57
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:28
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

1 réponse

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:28
Salut !
j'ai déjà répondu via l'article suivant
auquel tu as toi même donné une solution
En résumé :
Sans copier le Buffer :
utiliser l'opérateur LPCTSTR de la classe CString :
CString ma_variable = "CaMarcheAussi";
printf( "Et ca, %s\n", (LPCTSTR)ma_variable );

ou utiliser la méthode GetBuffer
char* a;
CString ma_variable;
ma_variable="OK";
a=ma_variable.GetBuffer(ma_variable.GetLength());

Si les données sont à modifier GetBuffer/ReleaseBuffer

Avec copie du buffer :
allocation + copie
LPSTR a = new char[ma_variable.GetLength()+1];
strcpy(a, ma_variable);
0
Rejoignez-nous