C/Visual C - CString to Char *

 
Vista:

CString to Char *

Publicado por Jose (5 intervenciones) el 28/12/2006 14:15:45
Holas, tengo el siguiente problema:

Cuando trato de convertir un CString en un char *, el char *, solo obtiene el primer caracter del CString, estoy trabajando con unicode, y me pregunto como puedo solucionar esto?, quizas alguno de los bytes del CString de unicode marca el char * como el caracter de fin de linea ( el \0 ) ?

utilizo el siguiente codigo:

CString hola = _T("asdf");
char *x;
x = (char *) (LPCTSTR) hola;

pero el contenido del char *, es "a" y no "asdf"

grax ~
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:CString to Char *

Publicado por fernando.gomez (1603 intervenciones) el 28/12/2006 17:21:13
No puedes mezclar caracteres Unicode con caracteres ASCII. En otras palabras, o trabajas con char o con wchar_t. Para eso está TCHAR, para que te olvides de si trabajas con uno o con otro.

Ahora bien, si necesitas convertir de todas formas de wchar_t a char, tendrás que hacerlo manualmente, siempre y cuando estés seguro de que todos los caracteres que tengas en CString sean compatibles con ASCII solamente.

char sz[50] = "";
CString str = _T("asdf");

for (int i = 0; i < str.GetLength(); i++)
{
sz[i] = (char)str.GetAt(i);
}

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar