(1)在ANSI字符集下
LPCTSTR想当于LPCSTR,其中L指long,P指Point,C指Const。在程序中可以直接用char*类型的数据对LPCSTR进行赋值,用下述语句:
LPCSTR a1= "abc";
string a2 = "abcde";
a1 = a2.c_str();
(2)在Unicode字符集下
LPCTSTR相当于LPCWSTR,它相当于wchar_t。可以用下述的语句对它进行赋值
LPCWSTR a1;
wstring a2;
a1 = a2.c_str();
(3)把ANSI字符串转换成Unicode字符集,可以用如下函数
wstring ANSIToUnicode(string str)
{
int lengthW = MultiByteToWideChar(CP_ACP,0,str.c_str(),-1,NULL,NULL);
wchar_t* pUnicode = new wchar_t [lengthW*sizeof(wchar_t)];
memset(pUnicode,0,lengthW*sizeof(pUnicode));
MultiByteToWideChar(CP_ACP,0,str.c_str(),-1,pUnicode,lengthW);
wstring strw = pUnicode;
delete[] pUnicode;
return strw;
} 其中,主要用了MultiByteToWideChar()函数,这个函数的具体用法,请查相关资料。
本文详细解释了ANSI字符集下LPCTSTR与LPCSTR的关系,以及如何在程序中进行赋值;同时介绍了Unicode字符集下LPCTSTR与LPCWSTR的对应关系,并演示了将ANSI字符串转换为Unicode字符集的方法。通过实例代码,深入理解字符集转换的实现过程。
482

被折叠的 条评论
为什么被折叠?



