通过设置一个菜单(ID_GDOCUMENT),点击该菜单,然后将编辑框(IDC_EDIT1)中输入的字符串写到一个文件中,如何实现,我的代码如下,我想把它写到D:\aa.bat中,担出现异常,而在单步调试中,发现 到CString str_Message 一行就发生异常错误Access Vioaltion
void CMainFrame::OnGdocument() 
{
// TODO: Add your command handler code here
        CEdit* m_Edit=(CEdit*)GetDlgItem(IDC_EDIT1);
//rendadfile
CString str_Message;
m_Edit->GetWindowText(str_Message);
// int i=str_Message.GetLength();
     // CFile mFile(_T("user.txt "), CFile::modeWrite|CFile::modeCreate); 
      ///mFile.Write(str_Message,sizeof(str_Message)); 
      //mFile.Flush(); 
      //mFile.Close(); 
      //int i=
      CStdioFile mFile;
  CFileException mExcept;
  mFile.Open("D:\aa.bat",CFile::modeWrite|CFile::modeCreate,&mExcept);
  mFile.WriteString(str_Message);
  mFile.Close();
 }

解决方案 »

  1.   

    CString str;
    m_Edit1.GetWindowText(str); try
    {
    CStdioFile f("d:\\log.txt", CFile::modeCreate | CFile::modeWrite |   
                              CFile::typeText);
    f.WriteString(str.GetBuffer(0));
    }
    catch (CFileException *e)
    {
    e->Delete();
    }
      

  2.   

    CStdioFile mFile;
      CFileException mExcept;
      mFile.Open("D:\\aa.bat",CFile::modeWrite|CFile::modeCreate,&mExcept);
      mFile.WriteString(str_Message);
      mFile.Close();D:\aa.bat 这个应该为 D:\\aa.bat
      

  3.   

    m_Edit是否是空的???
    调试看看你是否已经得到这个编辑按扭
      

  4.   

    open有误.传的第一个参数不能是字符串.可以传指针.
    加一句
    char * pFile = "D:\aa.bat"
    mFile.Open(pFile,....);
    就可以了
      

  5.   

    谢谢各位兄弟,我又单步跟踪了一下,发现m_Edit ,str_Message 的值都不正常.
      

  6.   

    我建立的是CFormView 的单文档文件,而在对话框文件中这种又是有效的
      

  7.   

    我解决了,必须要在CView中来处理该文件的存取,而不是在CMainFrame中