这个函数我有一个疑问。
首先比如说我用这个函数从一个文件中读了十行的数据,下次我在用这个函数的时候是从第十一行开始读呢。还是又从第一行开始读起?
比如说
for(y=0;y<cyDib;++y)
{
ReadFile(hFile,pBit+y*iRowLength,iRowLength,&dwByteSize,NULL); SetDIBitsToDevice(hdc,0,0,cxDib,cyDib,0,0,y,1,pBit+y*iRowLength,pBmi,0);
}
难道ReadFile函数还有记忆的功能?
请大家帮忙一下。谢谢

解决方案 »

  1.   

    读了一次但是没有关闭hFile就接着上一次的位置继续读取
      

  2.   

    会从第十一行读。
    ReadFile通过文件指针来记录上次读到的位置。
      

  3.   

    ReadFile没有记忆功能,但是文件句柄有。
      

  4.   

    DWORD dwFileStart = ***;  //在这里设置文件读取位置
    SetFilePointer(hFile, dwFileStart, NULL, FILE_BEGIN);
    if (!ReadFile(hFile,pBit+y*iRowLength,iRowLength,&dwByteSize,NULL) || iRowLength!= dwByteSize)
    {
    CloseHandle(hFile);
    return FALSE;
    }
    CloseHandle(hFile);
    SetDIBitsToDevice(hdc,0,0,cxDib,cyDib,0,0,y,1,pBit+y*iRowLength,pBmi,0);