[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