Visual c++ 如何在Windows中完全读取大于4GB的文件?

Visual c++ 如何在Windows中完全读取大于4GB的文件?,visual-c++,Visual C++,我需要在Windows中处理许多大于4GB的文件。 我使用FILE和fread()读取一个文件(大约40GB),并在VS2010 Debug-x64中编译代码,但无法完全读取该文件 我在C++的LIB源文件中发现,文件结构中的成员是32位(int),所以我发现它为什么失败了,但是我应该怎么做才能使文件被完全读取? < P>如果你只关心在Windows上运行,你可以使用cfile对象。其成员为64位。是否分配了40 GB的连续内存?如果不是,您可以读取部分文件,这将是推荐的。使用Win32 API

我需要在Windows中处理许多大于4GB的文件。 我使用FILE和fread()读取一个文件(大约40GB),并在VS2010 Debug-x64中编译代码,但无法完全读取该文件


我在C++的LIB源文件中发现,文件结构中的成员是32位(int),所以我发现它为什么失败了,但是我应该怎么做才能使文件被完全读取?

< P>如果你只关心在Windows上运行,你可以使用cfile对象。其成员为64位。

是否分配了40 GB的连续内存?如果不是,您可以读取部分文件,这将是推荐的。使用Win32 API函数读取文件@JoeWillcoxson:
CFile
没有64位函数。您不能期望通过一次读取调用读取40GB文件。当然,你可以分块读。Seek()和GetPosition()成员是64位的,允许您查找文件中的任何位置。