下载仍在开始时,InternetReadFile的lpdwNumberOfBytesRead变为零

时间:2013-09-27 07:23:28

标签: c++ download wininet

我使用InternetReadFile下载文件。

但是当下载大文件(超过1GB)时,它将停止下载。

我发现dwBytesRead会意外变为零,但InternetReadFile会返回TRUE。

无论我将 READ_BUFFER_SIZE 设置为4K或16K。

以下是我的代码:

while(1) 
{

    memset(tszReadBuffer, 0, READ_BUFFER_SIZE); //clear the buffer
    bReadFile = InternetReadFile(hInternetOpenURL, tszReadBuffer, READ_BUFFER_SIZE, &dwBytesRead);
    if(!bReadFile)
        return 0;

    llNowSize += dwBytesRead;  //calculate progress
    if (dwBytesRead == 0)    
        break;  //finish download
    bWriteFile = WriteFile(hCreateFile, tszReadBuffer, dwBytesRead, &dwBytesWrite, NULL);               
    if(!bWriteFile)
        return 0;                       
}

提前致谢。

0 个答案:

没有答案