0
다른 exe에서 생성 된 데이터를 읽는 타사 응용 프로그램 용 dll 플러그인을 개발하려고합니다. 나는 이것을 boost::managed_windows_shared_memory
으로 사용하고 있습니다.Boost managed_windows_shared_memory find() crash
exe는 공유 메모리를 생성하고 잘 동작하는 객체를 씁니다. 그러나, 내가 dll 코드에서 해당 개체를 찾으려고하면 내 타사 응용 프로그램이 충돌합니다. 나는 많은 것을 수색하여 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();