memory mapping老是失败,求教与高人!

alextooter 2005-11-04 12:53:57
两个进程之间通讯,用的windows的memory mapping,
CreateFileMapping经常会失败,返回错误值是“拒绝访问”


不知哪位老大遇到过这个问题,恳请帮忙!


例如这样的code:


GetSystemInfo(&sinf);
memblock = sinf.dwAllocationGranularity;
size = memblock * (1 + (memory_size - 1) / memblock);

/*
* create a NULL DACL (you can reference to
* http://www.google.com/search?q=NULL+DACL)
*/
InitializeSecurityDescriptor(&sd,SECURITY_DESCRIPTOR_REVISION);
SetSecurityDescriptorDacl(&sd,TRUE,NULL,FALSE);
sa.nLength = sizeof(SECURITY_ATTRIBUTES);
sa.bInheritHandle = TRUE;
sa.lpSecurityDescriptor = &sd;

hShareMem = CreateFileMapping ((HANDLE)0xFFFFFFFF,
&sa,
PAGE_READWRITE,
0,
/*size*/memory_size,
(LPCTSTR)share_memory_name);
...全文
209 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
alextooter 2005-11-05
  • 打赏
  • 举报
回复
我试了,的确试没有close handle的问题,感谢各位老大的回复。
rageliu 2005-11-05
  • 打赏
  • 举报
回复
那每次用完都CloseHandle()关闭
alextooter 2005-11-04
  • 打赏
  • 举报
回复
我这个程序不能创建不同的share memory name的,一定要每次都一样。

Best Regards!

Alex Guo
oyljerry 2005-11-04
  • 打赏
  • 举报
回复
嗯,每次创建不同的sharemem
alextooter 2005-11-04
  • 打赏
  • 举报
回复
感谢各位老大的回复,等我试验成功立刻给分!
rageliu 2005-11-04
  • 打赏
  • 举报
回复
OpenFileMapping
rageliu 2005-11-04
  • 打赏
  • 举报
回复
(LPCTSTR)share_memory_name这个参数的问题吧

每次不可以重复
goodboyws 2005-11-04
  • 打赏
  • 举报
回复
sa的问题?
或者同名的ShareMem已经被创建,这时要用OpenFileMapping
westfishwu 2005-11-04
  • 打赏
  • 举报
回复
关注

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧