我希望執行IPC使用命名共享內存。系統錯誤0x5:CreateFileMapping()
爲此,其中一個步驟是得到一個句柄映射內存對象,使用的CreateFileMapping()。
我這樣做是完全一樣的MSDN網站reccommends: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 64位系統位操作系統
- 管理員用戶可用權限
- 開發的應用程序:64位插件應用文件(.dll)
是否有人有相同的經歷,和請解決它的一種方法?我使用MSDN網站作爲我的參考,所以我不認爲,代碼中存在問題。
不確定這是什麼原因,但您是否需要將最大對象大小設置爲內存頁(4096字節)的倍數? – 2010-10-22 17:03:50
嗨尤金,不是,問題是我不設置SeCreateGlobalPriviledge。 – 2010-10-22 17:26:57