cstring 2 char

cstring 2 char - C++ - Programmation

Marsh Posté le 21-06-2002 à 19:56:16    

sous vc++ comment transormer une cstring en char[30] par exemple?


---------------
Borland rulez: http://pages.infinit.net/borland
Reply

Marsh Posté le 21-06-2002 à 19:56:16   

Reply

Marsh Posté le 21-06-2002 à 20:16:43    

y a pas une méthode genre c_str() comme pour les AnsiString de C++Builder ?


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 21-06-2002 à 20:54:05    

tu peux récupérer la chaine de la CString comme ceci :

Code :
  1. CString test("hello world" );
  2. LPTSTR dest = NULL;
  3. dest = test.GetBuffer();
  4. test.ReleaseBuffer();


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 22-06-2002 à 13:51:44    

Avec l'opérateur de cast (LPCSTR), une CString s'utilise de la même manière qu'un char* (tant qu'il s'agit d'une r-value).
 
Ex:
 
char buff[30];
CString tmp = "stach stach";
strcpy(buff,(LPCSTR) tmp);

Reply

Marsh Posté le 24-06-2002 à 12:26:26    

Harkonnen a écrit a écrit :

tu peux récupérer la chaine de la CString comme ceci :

Code :
  1. CString test("hello world" );
  2. LPTSTR dest = NULL;
  3. dest = test.GetBuffer();
  4. test.ReleaseBuffer();

 




 
Mais dans ce cas là, 'faut faire très gaffe, le buffer rendu par GetBuffer n'est pas constant, ms il devrait l'être !
Cette fonction ne devrait pas exister !

Reply

Marsh Posté le 24-06-2002 à 12:28:19    

el_gringo a écrit a écrit :

 
 
Mais dans ce cas là, 'faut faire très gaffe, le buffer rendu par GetBuffer n'est pas constant, ms il devrait l'être !
Cette fonction ne devrait pas exister !  




Le buffer n'est pas constant tant que tu n'éxecutes pas ReleaseBuffer(). C'est pour ça qu'il faut l'éxecuter immédiatement après avoir obtenu le buffer.


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 24-06-2002 à 13:58:32    

Harkonnen a écrit a écrit :

 
Le buffer n'est pas constant tant que tu n'éxecutes pas ReleaseBuffer(). C'est pour ça qu'il faut l'éxecuter immédiatement après avoir obtenu le buffer.  




 
Mais, ReleaseBuffer, ça le rend invalide ce buffer après, non ?

Reply

Marsh Posté le 24-06-2002 à 14:03:40    

Oui, tout à fait. En fait je viens de m'apercevoir que j'ai marqué une grosse connerie : tant que tu n'éxecutes pas ReleaseBuffer(), le buffer reste constant.
 
Idiot que je suis !!!


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed