我在一个对话框类A里面定义了一个CFile成员,打开模式是CFile::modeCreate | CFile::modeWrite | CFile::shareDenyNone
,然后我定义了该对话框的派生类B,B用非模态方式创建,在创建之后将文件用close关掉,
然后在B的OnInitDialog中用另外一个CFile对象将文件打开,模式为CFile::modeRead | CFile::shareDenyNone,结果程序在这里总是出错,打开不了,请高手帮忙解决一下!  

解决方案 »

  1.   

    打开模式是CFile::modeCreate | CFile::modeWrite | CFile::shareDenyNone
    ============
    应该是文件没有被关闭的原因中,将CFile::shareDenyNone改成:CFile::shareDenyRead   试试,后面的CFile::shareDenyNone去掉吧
      

  2.   

    非模态方式创建,关掉的时候不要在OnInitDialog里面,要在OnCreate
      

  3.   

    好像还是解决不了我在基类的代码是这样的(积累中file是成员变量):
    UpdateData(true);

    bool b = file.Open(_T("1.txt"),CFile::modeCreate | CFile::modeWrite | CFile::shareDenyRead);
    if(!b)
    {
    MessageBox(_T("文件创建失败!"),_T("提示"));
    }
    else
    {
    CString str;
                    …… ……
    file.Write(str,str.GetLength());
                    file.Close();
    }

    ChaXunDlg.Create(MAKEINTRESOURCE(IDD_DIALOG_CHAXUN),this);
    ChaXunDlg.ShowWindow(SW_SHOW);
    然后在派生类中有:
    CFile file;
    if(!file.Open(_T("1.txt"),CFile::modeRead))
    {
    MessageBox(_T("未获取到查询信息!"),_T("提示"));
    }
    else
    {
    CString str;
    file.Read(&str,file.GetLength());
    str = _T("123");
    MessageBox(str);
    file.Close();
    }