gpt4 book ai didi

c++ - 共享内存: MapViewOfFile returns error 5

转载 作者:行者123 更新时间:2023-12-03 12:47:59 37 4
gpt4 key购买 nike

我需要一种机制来在一些线程之间共享内存(通常在同一个进程中,但有时不是)。

此代码看似非常基本,但在 MapViewOfFile 上失败并出现错误 5(访问被拒绝):

HANDLE hSharedMemCreated = CreateFileMapping(
INVALID_HANDLE_VALUE, // use paging file
NULL, // default security
PAGE_READWRITE, // read/write access
0, // maximum object size (high-order DWORD)
10000, // maximum object size (low-order DWORD)
"testFileMapping"); // name of mapping object
HANDLE hSharedMemOpened = OpenFileMapping(
PAGE_READWRITE, // read/write access
FALSE,
"testFileMapping"
);
void* location = MapViewOfFile(
hSharedMemOpened, // handle to map object
FILE_MAP_ALL_ACCESS, // read/write permission
0,
0,
10);
  • MapViewOfFile 成功打开具有 FILE_MAP_READ 权限的句柄 hSharedMemOpened
  • MapViewOfFile 成功创建具有 FILE_MAP_ALL_ACCESS 权限的句柄 hSharedMemCreated
  • MapViewOfFile 因使用 FILE_MAP_ALL_ACCESS 权限打开句柄 hSharedMemOpened 失败。

最佳答案

答案在评论中:

PAGE_READWRITE 不是 OpenFileMapping() 的有效参数。您可能需要FILE_MAP_ALL_ACCESS

关于c++ - 共享内存: MapViewOfFile returns error 5,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52614485/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com