Я пытаюсь разработать плагин dll для стороннего приложения, которое считывает данные, сгенерированные другим исполняемым файлом. Я использую boost::managed_windows_shared_memory
для этого.
exe создает общую память и записывает в нее объект, который работает нормально. Однако, когда я пытаюсь найти этот объект в коде dll, мое стороннее приложение падает. Я много искал и наткнулся на включение-увеличение">этот пост. В последнем ответе упоминается, что использование find() создает тупик.
Я пытался использовать boost::interprocess_mutex
, но это тоже не сработало. Любые рекомендации о том, как я могу это исправить? Спасибо!
В исполняемом файле:
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();