如何一次将4GB以上的内存加载到内存缓冲区中?

时间:2019-03-05 17:36:22

标签: winapi readfile

如何一次将超过4GB的文件加载到内存缓冲区中(=使用单个WinAPI调用)? WinAPI ReadFile方法仅支持最多4294967295字节。

注意:只是为了使那些在网络搜索中偶然发现此问题的人更清楚:这通常是一个非常坏主意。我们已经考虑过将其用于非常特殊的情况,但并没有考虑。不过,从理论上讲,我们仍然对是否可行以及如何实现感兴趣。

1 个答案:

答案 0 :(得分:1)

您不能通过单次调用Win32 API函数来执行此操作。多次调用ReadFile,读取的块大小不得超过4GB,直到您读取了所有需要读取的内容为止。

如果这有助于您进行单个函数调用,请将该循环包装在您定义的函数中,然后调用该函数。