Cita:
Empezado por LuisMiguel
Saludos a todos
Necesito convertir un String 'o UnicodeString a un char *
char * a = "Ejemplo"; // El resultado de esto es: "Ejemplo";
String a = "Ejemplo"; // El resultado de esto es: L"Ejemplo";
Como ven la (L) esta delante de lo que me da como resultado,cosa que quisiera eliminar porque asi me da error en lo que estoy haciendo.
|
La "L" es una notación, no aparece en la cadena.
1.- Si tienes activada en las opciones del proyecto: _TCHAR maps to = char entonces y partiendo un un String Unicode, la función t_str() te devuelve una cadena tipo char*.
2.- Si tienes activada en las opciones del proyecto: _TCHAR maps to = wchar_t entonces y partiendo un un String Unicode, la función t_str() te devuelve una cadena tipo wchar_t*.
3.- c_str() siempre devuelve un wchar_t si se aplica a un UnicodeString.
4.- Siempre puedes forzar la conversión a AnsiString y aplicar c_str():
Código Delphi
[-]char *c = AnsiString(L"HOLA").c_str();
Saludos.