最近遇到了在CFile读取文件时,弹出如下断言错误:Filecore.cpp  226行。经查看代码,发现是AfxIsValidAddress(lpBuf, nCount)出的问题。哪位高人指点下:通常什么情况下会出现这样的错误,在此先谢谢了!

解决方案 »

  1.   

    貌似lpBuf地址不对,读文件时,seek到哪了?
      

  2.   

    通常应该先Seek到文件头,然后再确定要读取的起始长度和数据长度
      

  3.   

    我目前不知道是代码中的哪个Read报的错,不过在读取文件之前,都判断lpBuf的有效性了(不为NULL)。lpBuf有些是new出来的指定大小的指针,有些是数组,有些取得是变量的地址。难道lpBuf的地址是程序不能使用的有效地址?
    这和seek到哪有关系吗?
      

  4.   

    seek到文件尾,再read肯定就不对了
      

  5.   

    试试:
    CFile::ReadHuge() 或 CFile::WriteHuge()