我使用以下示例来使用共享内存Creating Named Shared Memory(这是Microsoft的示例)。
一般来说,它运作得很好。 如果“第一个程序”是Windows服务的子进程而“第二个程序”是普通用户程序,则我的问题就出现了。在这种情况下,“第二个程序”在调用OpenFileMapping()时会出现“拒绝访问”错误。
所以,我知道我必须使用“安全描述符”,并允许所有用户共享此内存。 有没有人知道如何做到这一点? 我没有找到任何代码示例。
我在Sharing memory between two processes (C, Windows)看到了关于这个问题的另一个讨论,但这更简单。
有什么建议吗?
答案 0 :(得分:0)
还有另一个帖子How to share memory between services and user processes可能有助于解决您的问题。我玩这个,并使用ACE
D:(A;;GR;;;AU)(A;;GA;;;LS)
最终用户只能从共享内存中读取。