InternetReadFile 读取大于2G的文件出错解决方案

InternetReadFile 读取大于2G的文件出错
从FTP下载文件,用InternetReadFile读取数据。下载一般文件时没有问题,当文件大于2G就报错了,出错时已下载的文件刚好2G,请问是什么原因造成的?怎么改啊?
------解决方案--------------------
FAT32分区??
------解决方案--------------------
缓冲区不够?
------解决方案--------------------
代码中写上调试代码,让程序下载到快到2G的时候断点下来,然后跟踪,看看是哪里的问题

if(iTotal == XXX)
      TRACE("XXXXXX\n");

------解决方案--------------------
估计长度判断中使用了LONG型数据
 LONG_MAX = 2147483647 (2G)
------解决方案--------------------
用internetreadfileex API,
InternetReadFile有点老了,可能不支持2G以上的大文件
------解决方案--------------------
你应该也是用InternetReadFile循环读取文件数据的吧,调用FtpGetFileSize获得文件大小分小段来循环下载文件数据,保存下来,然后用GetLastError和InternetGetLastResponseInfo 判断下是出现什么错误了