不能将参数 从“CString”转换为“const wchar_t *”

chipo_fly chipo_fly 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
有一个打开文件的操作:


CFileDialog opendlg(false,NULL,L"Video_00.avi",OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,L"Video Files (*.avi)|*.avi|All Files (*.*)|*.*||",NULL);
if (opendlg.DoModal() == IDOK)
{
strFileName = opendlg.GetPathName();
}
const size_t strsize=(strFileName.GetLength()+1)*2; // 宽字符的长度;
char* pstr= new char[strsize]; //分配空间;
size_t sz=0;
wcstombs_s(&sz,pstr,strsize,strFileName,_TRUNCATE);
int n=atoi((const char*)pstr);



这段代码以前使用过,现在又需要用到,直接copy过来用,结果却出现了以下错误:

CFileDialog::CFileDialog(BOOL,LPCTSTR,LPCTSTR,DWORD,LPCTSTR,CWnd *,DWORD,BOOL)”: 不能将参数 3 从“const wchar_t [13]”转换为“LPCTSTR”
1> 与指向的类型无关;转换要求 reinterpret_cast、C 样式转换或函数样式转换

wcstombs_s”: 不能将参数 4 从“CString”转换为“const wchar_t *”
1> 没有可用于执行该转换的用户定义的转换运算符,或者无法调用该运算符





对于这些格式的转化最头疼了。。。。。关键是 ,为什么 之前可以用,现在却不可以了呢?
...全文
评论 22
收藏 已收藏
分享
返回顶部
chipo_fly
VC/MFC 16,550 成员 421,606 内容