关于mfc文件结果保存问题
各位大神啊,小弟遇到这么几个纠结的问题,我想把一个扫描结果保存下来,代码如下
CString strExt = (_T(".txt")); // 扩展名
CString strFilePath;
CString strFilter;
strFilter.Format(_T("Text Files (*txt)|*txt|All Files (*.*)|*.*||"));
CFileDialog dlg(FALSE, NULL, "", NULL, strFilter);
if (dlg.DoModal() == IDOK)
{
strFilePath = dlg.GetPathName();
if (strFilePath.Find(strExt) == -1)//查找扩展名,如果没有输入则自动加
{
strFilePath += strExt;
}
if ( access(strFilePath, 0) == 0 )
{
CString strQuery;
strQuery.Format(_T("%s 已经存在,要替换掉吗?", strFilePath));
if ( IDNO == ::MessageBox(m_hWnd, strQuery, _T("文件覆盖询问"), MB_ICONQUESTION | MB_YESNO) )
{
return;
}
}
FILE *fp = fopen(strFilePath, "wt+");
if ( fp != NULL )
{
fputs("测试代码。。。", fp);
fclose(fp);
}
}
错误如下
1 IntelliSense: 没有与参数列表匹配的构造函数 "CFileDialog::CFileDialog" 实例
2 IntelliSense: 不存在从 "CString" 到 "const char *" 的适当转换函数
3 IntelliSense: 不存在从 "CString" 到 "const char *" 的适当转换函数
现在有三个问题,其中两个一样,求解决……
[解决办法]
CFileDialog dlg(FALSE, NULL,NULL, NULL, strFilter);
后面的两个CSTRING需要转换为const char *类型
[解决办法]
CFileDialog dlg(FALSE, NULL, L"", NULL, strFilter);
[解决办法]