我希望使用命名的共享内存来实现进程间通信(IPC)。
为了达成这个目标,其中一步是获取一个句柄到映射内存对象(Mapping Memory Object),使用CreateFileMapping()。
我按照MSDN网站的建议进行操作:http://msdn.microsoft.com/en-us/library/aa366551(v=VS.85).aspx:
hFileMappingHandle = CreateFileMapping
(
INVALID_HANDLE_VALUE, // use paging file
NULL, // default security
PAGE_READWRITE, // read/write access
0, // maximum object size (high-order DWORD)
256, // maximum object size (low-order DWORD)
"Global\\MyFileMappingObject" // name of mapping object
);
DWORD dwError = GetLastError();
然而,返回的句柄始终为0x0,并且返回的系统错误代码为:0x5(访问被拒绝)
- 仅需要命名内存共享(不需要文件共享)。
- Windows 7 x64位操作系统
- 管理员用户权限可用
- 开发应用程序:64位插件应用程序(.dll)
有人有相同的经验,并有修复此问题的方法吗?我使用MSDN网站作为我的参考,因此我不认为代码存在问题。