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