LPVOID lpBase; HANDLE hMapFile;
int load_mmp_file(const wstring& filePath) { scope_filePtr file(filePath, L"rb"); uint32_t size = file.fileSize(); unique_ptr<char[]> spBuf = make_unique<char[]>(size + 1); file.read(spBuf.get(), size, 1, size); file.close();
hMapFile = CreateFileMapping( INVALID_HANDLE_VALUE, NULL, PAGE_READWRITE, 0, size, L"ShareMemory" ); lpBase = MapViewOfFile( hMapFile, FILE_MAP_ALL_ACCESS, 0, 0, size );
memcpy((char*)lpBase, spBuf.get(), size);
return size; }
UnmapViewOfFile(lpBase);
CloseHandle(hMapFile);
|