请问C++LPCTSTR类型的深拷贝怎么写?麻烦指点一下。
(不用过多的代码,尽量清晰明了,谢谢!)
这是我的另一个号,我已经弄好了,用的lstrcopy
LPCTSTR 就是 const char*,你要复制到什麽类型?不能复制到另一个LPCTSTR的
申请相同大小的字符串空间,然后逐个字符复制
UNICODE模式下,参考如下:
LPCTSTR convert(LPCTSTR t)//这个函数名换成你自己的
{
CString str = t;
int n = str.GetLength();
//获取宽字节字符的大小,大小是按字节计算的
int len = WideCharToMultiByte(CP_ACP, 0, str, str.GetLength(), NULL, 0, NULL, NULL);
//为多字节字符数组申请空间,数组大小为按字节计算的宽字节字节大小
char* pFileName = new char[len + 1]; //以字节为单位
//宽字节编码转换成多字节编码
WideCharToMultiByte(CP_ACP, 0, str, str.GetLength(), pFileName, len, NULL, NULL);
pFileName[len + 1] = '/0'; //多字节字符以'/0'结束
return (LPCTSTR)pFileName;
}