string casting lpcstr

string - ¿cómo se puede convertir una cadena LPCSTR en una cadena LPCTSTR?



casting (3)

Vea estas notas: Cómo desenredar cadenas en Visual C ++ . Las notas discuten los diversos tipos de cadenas que verá en el desarrollo de Microsoft C ++ y cómo convertir entre ellas.

Estoy tratando de convertir una cadena LPCSTR en una cadena LPCTSTR . Quiero concatenar dos cadenas, cuando intento así

LPCTSTR str1 = L"Raja" LPCSTR str2 = "Kumar" wcscat_s(str1,(LPCTSTR)str2);

encontré el o / p como Raja .... r (valores basura) .... ¿cómo se puede encasillar LPCSTR a LPCTSTR ?


LPCTSTR puede ser de carácter simple o caracteres anchos, según la configuración de su proyecto. Además, no es posible concatenar una cadena ancha y una cadena de caracteres simples. Necesita convertir uno a una forma compatible (de ancho a multibyte o viceversa) y luego concatenar.

Suponiendo que quiere que el objetivo sea una cadena ancha, tendría que convertir el "Kumar" en una cadena de caracteres anchos. Para hacer esto, use la función MultiByteToWideChar con la página de códigos apropiada.

Busque este artículo de KB en MSDN y el enlace de John.


MultiByteToWideChar es el único camino a seguir, si su código está compilado con UNICODE.

Alternativamente puedes hacer esto. 7bits ASCII -> wchar debería ser fácil.

TCHAR str3[256] = { 0 }; for (int i = 0; str2[i] != 0; i++) str3[i] = str2[i];