CFile fp;
Rule* rf;//自己定义的类
ULONGLONG len = fp.GetLength();
ULONGLONG nn = fp.GetPosition();
while(nn<len)
{
CArchive ar(&fp, CArchive::load);
rf = (Rule*)ar.ReadObject(RUNTIME_CLASS(Rule));
ar.Flush();
nn = fp.GetPosition();
}
看别人写的说用getPosition()和getLength()比较来判断文件结尾,发现Cachive读取文件后fp直接指向了文件结尾,无法直接比较判断。可以在循环里不断更新文件指针fp的值(利用flush()函数更新),再利用这两个函数进行比较。`