我使用 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;
}
提前致谢。