【发布时间】:2020-07-23 23:24:57
【问题描述】:
我需要将一个大文件部分读取到有限的缓冲区中。我的代码有效,但总是从头开始读取。我想我需要以某种方式使用 dwFileOffsetHigh 和 dwFileOffsetLow,但我不知道如何。 Mapper_Winapi_Uptr 是一个带有自定义删除器的 unique_ptr,如有必要,我可以布置它的代码。 系统:64位Win10。
const std::vector<BYTE>& ReadFile(size_t pos) {
memory = Mapper_Winapi_Uptr{ static_cast<BYTE*>(MapViewOfFile(mapping, FILE_MAP_READ, 0, 0, bufferSize)) };
std::memcpy(&data[0], memory.get(), bufferSize);
return data;
}
【问题讨论】:
-
docs 解释了如何使用这些参数。您具体遇到了什么问题?
-
我阅读了文档但不明白这些参数之间的区别以及如何使用它们。
-
文件偏移是一个64位的值,分成两个32位的值。
标签: c++ winapi memory mapping c++17