首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

关于mfc文件结果保存有关问题

2012-01-15 
关于mfc文件结果保存问题各位大神啊,小弟遇到这么几个纠结的问题,我想把一个扫描结果保存下来,代码如下CSt

关于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);

[解决办法]

探讨

引用:

CFileDialog dlg(FALSE, NULL,NULL, NULL, strFilter);
后面的两个CSTRING需要转换为const char *类型

那么请问,怎么转换……,转换这个太伤脑经了……

[解决办法]
字符集问题,改成 多字节 环境
[解决办法]
用 FILE *FP;

[解决办法]
直接给你个CSTRING转CHAR* 的方法吧
void ToChar(CString strText)
{
char *chText = NULL;
DWORD dwNum = WideCharToMultiByte(CP_ACP, NULL, strText, -1, NULL, 0, NULL, FALSE);
chText = new char[dwNum];
WideCharToMultiByte(CP_ACP, NULL, strText, -1, chText, dwNum, NULL, FALSE);delete []chText;
}

chText 变量就是你要的char*


给分..........



[解决办法]
if ( access(strFilePath, 0) == 0 )
FILE *fp = fopen(strFilePath, "wt+");
strFilePath

 strFilePath.GetBuffer(0);
[解决办法]
2 IntelliSense: 不存在从 "CString" 到 "const char *" 的适当转换函数

(LPCSTR)CString::GetBuffer(0);
[解决办法]
探讨
引用:
字符集问题,改成 多字节 环境

求教怎么改?

热点排行