关于网友提出的“ memory mapping老是失败,求教与高人!”问题疑问,本网通过在网上对“ memory mapping老是失败,求教与高人!”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:
问题: memory mapping老是失败,求教与高人!
描述: 两个进程之间通讯,用的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);
解决方案1: 那每次用完都CloseHandle()关闭
解决方案2: 嗯,每次创建不同的sharemem
解决方案3: sa的问题?
或者同名的ShareMem已经被创建,这时要用OpenFileMapping
以上介绍了“ memory mapping老是失败,求教与高人!”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/3400902.html