try{
CFile file("lgTmp.txt", CFile::modeRead);
file.Read(Data, sizeof(Data));
file.Close();
return true;
}
catch(...)
{
MessageBox("error");
return false;
}// 如果文件不存在, 并且这段 代码 5秒执行一次// Data定义
struct Data
{
char tmp[100];
};

解决方案 »

  1.   

    关键是你的Data如何用的?
    好像这句话file.Read(Data, sizeof(Data));不对吧?
      

  2.   

    要看看你怎么会Data分配内存了.
    还有在异常处理时,不仅可能只会因为文件不存在时Open会异发异常,就连Read也可能会异发异常.如文件的无读写权限时.
    所以在异常中加一个判断,如果文件打开了,要关闭其File Handle.
      

  3.   

    // 更新写法了
    // Data 是个结构体, 保证问题
    bool CLGSortCtrlDlg::FileRead()
    {
    try{
    CFile file;
    if (file.Open("lgTmp.txt", CFile::modeRead) == 0)
    {
    return false;
    }
    else
    {
    file.Read(Data, sizeof(m_moxaData);
    file.Close();
    return true;
    }
    }
    catch(...)
    {
    MessageBox("error");
    return false;
    }
    }
      

  4.   

    file.Read(Data, sizeof(m_moxaData);
    这个不太好吧,空间都一样大吗?