bitte helfen Sie mir beim Lesen von Memory-Mapped-Datei. Ich öffne Datei im Code unten. Und dann möchte ich Bytes von 8 bis 16 lesen. Wie kann ich das tun?Memory-Mapped-Datei C++
// 0. Handle or create and handle file
m_hFile = CreateFile(file_path.c_str(), GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
if (m_hFile == INVALID_HANDLE_VALUE)
{
if (GetLastError() == ERROR_FILE_NOT_FOUND)
{
m_hFile = createNewFile(file_path.c_str());
}
else throw GetLastError();
}
// 1. Create a file mapping object for the file
m_hMapFile = CreateFileMapping(m_hFile, NULL, PAGE_READWRITE, 0, 0, NULL);
if (m_hMapFile == NULL) throw GetLastError();
// 2. Map the view.
m_lpMapAddress = MapViewOfFile(m_hMapFile, FILE_MAP_ALL_ACCESS, 0, 0, 0);
// to map
if (m_lpMapAddress == NULL) throw GetLastError();
Ist ein dublicate von dieser: [link] (http://stackoverflow.com/questions/9889557/mapping-large-files-using-mapviewoffile). Sie haben den Zeiger m_lpMapAddress, der hoffentlich ein Bytezeiger ist. Fügen Sie dem Zeiger 8 Bytes hinzu und lesen Sie den Speicher. Das ist alles – mrAtari
@mrAtari Wie kann ich 8 Bytes hinzufügen? – ExiD
m_lpMapAddress + = 8 – mrAtari