我做了一些测试,我能够在 C++/CLI 可执行文件中创建和删除 boost::interprocess::shared_memory_object 没有问题。在 C++/CLI dll 插件中,我只能创建 boost::interprocess::shared_memory_object 但删除失败。我验证了该文件在删除时存在 - 它存在于 boost::interprocess 文件夹中名为“20110606204418.125000”的子文件夹中。内存尚未被任何其他进程映射。任何想法可能是什么原因?一开始我认为这可能与作为 dll 并针对 CLR 的项目有关,但老实说我不知道。编辑:删除代码由与创建代码不同的线程调用 - 这是不允许的吗?
问问题
912 次