VC6.0中MFC多字节环境语句导入到VS2013Unicode环境,结果不正确,求解!

VC6.0下语句:
BOOL CMy3DSLoaderView::OpenFile(LPCTSTR lpszPathName)
{
char* file = new char[strlen(lpszPathName)];
strcpy(file, lpszPathName); ​//file内容被正确传递
...
}

VS下函数内容我修改为:
{
char* file = new char[strlen((char*)lpszPathName)];
strcpy(file, (const char*)lpszPathName); ​//file内容不正确
...
}
​该如何修改,求解!

2个回答

因为字符集不一样,lpszPathName是unicode字符指针了。

Kingdom__dong
Kingdom__dong 回复oyljerry:虽然口袋没有积分送给你,还是要谢谢你。我尝试修改,(CW2A)是正确的。
4 年多之前 回复
oyljerry
oyljerry 回复Kingdom__dong: (CW2A)lpszPathName 转换成ANSI
4 年多之前 回复
Kingdom__dong
Kingdom__dong 嗯。该如何把值正确传递给给file呢?有好解决方法吗?
4 年多之前 回复

TCHAR* file = new TCHAR[_tcslen(lpszPathName)];
_tcscpy(file, lpszPathName); ​//file内容被正确传递

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问