要通過CreateFileMapping共享數(shù)據(jù),可以按照以下步驟進(jìn)行操作:
HANDLE hFileMapping = CreateFileMapping(
INVALID_HANDLE_VALUE, // 使用無效的句柄,表示映射到系統(tǒng)頁面文件
NULL, // 默認(rèn)的安全設(shè)置
PAGE_READWRITE, // 可讀寫
0, // 高32位文件大小
dwDataSize, // 低32位文件大小
szMappingName // 映射對象的名稱
);
LPVOID lpData = MapViewOfFile(
hFileMapping, // 文件映射對象的句柄
FILE_MAP_ALL_ACCESS, // 可讀寫
0, // 高32位偏移量
0, // 低32位偏移量
dwDataSize // 映射的數(shù)據(jù)大小
);
現(xiàn)在你可以在lpData指向的內(nèi)存區(qū)域中讀取和寫入數(shù)據(jù)了。
當(dāng)不再需要共享數(shù)據(jù)時,記得使用UnmapViewOfFile函數(shù)來解除映射,并使用CloseHandle函數(shù)關(guān)閉文件映射對象的句柄。
以上就是通過CreateFileMapping共享數(shù)據(jù)的基本步驟。在具體應(yīng)用中,你可能需要根據(jù)情況進(jìn)行適當(dāng)?shù)男薷暮蛿U(kuò)展。