[C con Clase] Convertir std::string a LPTSTR...
Programante
programante en gmail.com
Mie Mayo 13 00:59:09 CEST 2009
Gilberto Cuba Ricardo escribió:
> Hola Lista,
>
> Conocerán ustedes una forma más sencilla de convertir un string de
> la librería estándar a un LPTSTR? Yo lo he hecho así.
>
>
> string st1("Esta es mi cadena");
> LPTSTR lpSt1;
>
> char *src = (char *)malloc(st1.size());
> memcpy(src, st1.c_str(), st1.size());
> wchar_t *dst = (wchar_t *)malloc(sizeof(wchar_t)*st1.size());
>
> mbstowcs(dst, src, st1.size());
>
> lpSt1 = (TCHAR *)(dst);
>
> printf("%S\n", lpSt1);
>
> free(src);
> free(dst);
>
Si estás compilando sin UNICODE, un LPTSTR es lo mismo que un LPSTR, que
es igual que
una cadena de C, y por tanto podrías usar st1.c_str()
Si usas como UNICODE, puedes usar std::wstring en lugar de std::string
Más información sobre la lista de distribución Cconclase