Convertir un CString en char* et inversement
de CString en char*
de char* en CStringCode:char* pmonchar=(char*)LPCTSTR(monCString);
Code:CString monCString(pmonchar);
Version imprimable
Convertir un CString en char* et inversement
de CString en char*
de char* en CStringCode:char* pmonchar=(char*)LPCTSTR(monCString);
Code:CString monCString(pmonchar);
salut,
la premiere ligne est moche et dangereuse.
moche pour l'enchainement de cast a la C qui de plus enleve le qualificatif const .Code:
1
2 char* pmonchar=(char*)LPCTSTR(monCString)
a partir de la rien n'empeche de modifier pmonchar et de crasher l'objet CString.
surtout que l'objet peut tres bien se relouer un autre espace memoire entre temps ,du coup ton pointeur il pointe dans le no man's land.
si tu dois faire ça il faut utilser un pointeur constant.
et l'usage doit être limité dans le temps.Code:
1
2 const char* pmonchar=monCString;
et finalement on devrait avoir de moins en moins avoir besoin d'utiliser ce genre de chose en programmation objet.
:D
bien d'accord :DCitation:
Envoyé par farscape
mais le jour où microsoft se passera des char et autre LPCSTR dans son API ...
Mais il faut s'habituer à penser que l'on peut s'en passer pour progresser ,Citation:
Envoyé par nico-pyright(c)
et securiser son code .
c'est comme les static_cast il faut prendre l'habitude.
:D
je rajouterai :Citation:
Envoyé par Gloubi99
Code:CString monCString (pmonchar,strlen(pmonchar));
salut,
tu n'est pas obligé vu que la ctring dispose d'un constructeur :
:DCode:
1
2
3 CString( LPCSTR lpsz );
Salut
les deux lignes de code ont défrayé la chronique !!!!!!!!!!!!!!!!!
j'ai bien compris que j'avais fait une grosse bétise :oops:
coup de bol j'utilise la bonne ligne ...
pour ma défense, je les ai trouvé sur le net !!!
:idea: à mettre dans la FAQ en version corrigée.
:merci:
et encore tu n'as rien vu ,j'ai vu bien pire comme défrayage de chronique :lol:Citation:
Envoyé par Gloubi99