开发者

how can convert LPCSTR string into LPCTSTR string?

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)st开发者_如何学JAVAr2);

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


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.


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];


I tried this it worked:

#include <iostream>
#include <atlstr.h>

using namespace std;
int main()
{
    LPCSTR stringToConvert = "My troublesome string";
    CString transitionString = stringToConvert;
    LPCTSTR myDesiredString = transitionString;

    wcout  << myDesiredString;
}
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜