您好,欢迎来到[编程问答]网站首页   源码下载   电子书籍   软件下载   专题
当前位置:首页 >> 编程问答 >> VC/MFC >> memory mapping老是失败,求教与高人!

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

来源:网络整理     时间:2016/8/19 20:22:57     关键词:

关于网友提出的“ 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

相关图片

相关文章