中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

c++ windows下創建共享內存

小云
133
2023-08-19 14:09:10
欄目: 編程語言

在Windows下,可以使用CreateFileMapping函數來創建共享內存。

以下是一個示例代碼:

#include <iostream>
#include <windows.h>
int main()
{
// 創建共享內存
HANDLE hMapFile = CreateFileMapping(
INVALID_HANDLE_VALUE,   // 使用無效的文件句柄
NULL,                   // 默認安全屬性
PAGE_READWRITE,         // 可讀寫權限
0,                      // 共享內存大小(0表示文件大小)
4096,                   // 共享內存名稱
TEXT("MySharedMemory")
);
if (hMapFile == NULL)
{
std::cout << "無法創建共享內存,錯誤代碼:" << GetLastError() << std::endl;
return 1;
}
// 將共享內存映射到進程的地址空間
LPVOID pBuf = MapViewOfFile(
hMapFile,       // 共享內存句柄
FILE_MAP_ALL_ACCESS,    // 可讀寫權限
0,
0,
);
if (pBuf == NULL)
{
std::cout << "無法映射共享內存,錯誤代碼:" << GetLastError() << std::endl;
CloseHandle(hMapFile);
return 1;
}
// 寫入數據到共享內存
strcpy_s((char*)pBuf, 4096, "Hello, shared memory!");
// 等待用戶輸入
std::cin.get();
// 解除內存映射
UnmapViewOfFile(pBuf);
// 關閉共享內存句柄
CloseHandle(hMapFile);
return 0;
}

這段代碼創建了一個大小為4096字節的共享內存,并將字符串"Hello, shared memory!"寫入其中。你可以在其他進程中使用OpenFileMapping函數來打開并讀取共享內存中的數據。

0
大埔区| 句容市| 滦南县| 海城市| 奉新县| 龙南县| 娄烦县| 乌拉特中旗| 永和县| 日喀则市| 东平县| 焉耆| 昆明市| 灌云县| 南木林县| 绥化市| 宣汉县| 西吉县| 无为县| 重庆市| 海安县| 柳河县| 定远县| 竹山县| 扶沟县| 溆浦县| 秭归县| 鱼台县| 石棉县| 苍南县| 景谷| 昌宁县| 江津市| 西丰县| 安塞县| 晋江市| 灵山县| 临城县| 会东县| 万全县| 邵东县|