gpt4 book ai didi

c++ - boost managed_windows_shared_memory find() 崩溃

转载 作者:行者123 更新时间:2023-11-28 06:49:20 24 4
gpt4 key购买 nike

我正在尝试为第三方应用程序开发一个 dll 插件,它读取另一个 exe 生成的数据。为此,我正在使用 boost::managed_windows_shared_memory

exe 创建共享内存并向其中写入一个运行良好的对象。但是,当我尝试在 dll 代码中找到该对象时,我的第 3 方应用程序崩溃了。我搜索了很多并遇到了 this post .最后一个答案提到使用 find() 会造成死锁。

我尝试使用 boost::interprocess_mutex 但它也没有用。关于如何解决这个问题的任何指导方针?谢谢!

在exe中:

boost::interprocess::interprocess_mutex myMutex;

myMutex.lock();

i = managed_shm.find_or_construct<int>("MyInteger")(992);

myMutex.unlock();

在 dll 中:

boost::interprocess::interprocess_mutex myMutex;

myMutex.lock();

std::pair<int*, std::size_t> p = managed_shm.find<int>("MyInteger");

myMutex.unlock();

最佳答案

进程间(匿名)旨在用于放置inside 共享内存。如果您想使用它来管理共享内存区域的创建或同步对它的访问从共享内存之外,请使用命名互斥体:

关于c++ - boost managed_windows_shared_memory find() 崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24314876/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com