how can convert LPCSTR string into LPCTSTR string?

懵懂的女人 提交于 2019-12-02 04:57:13

问题


i am trying to convert a LPCSTR string into LPCTSTR string. i want to concatenate two string,when i try like this

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

i found the o/p like Raja....r(junkvalues)....how can typecast LPCSTR to LPCTSTR?


回答1:


LPCTSTR can be either plain char or wide characters depending on your project settings. Further, you cannot possibly concatenate a wide string and a plain char string. You need to convert one to a compatible form (wide to multibyte or vice versa) and then concatenate.

Assuming you want the target to be a wide string, you'd need to convert the "Kumar" to a wide character string. To do this use the MultiByteToWideChar function with appropriate code page.

Look up this KB article on MSDN and John's link.




回答2:


See these notes: Unraveling Strings in Visual C++. The notes discuss the various kinds of strings you'll see in Microsoft C++ development and how to convert between them.




回答3:


MultiByteToWideChar is the only way to go, if your code is compiled with UNICODE.

Alternatively you can do this. 7bits ASCII -> wchar should be easy.

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


来源:https://stackoverflow.com/questions/1642494/how-can-convert-lpcstr-string-into-lpctstr-string

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!