Я пытаюсь внедрить систему плагинов, но у меня возникли некоторые проблемы. В плагине DLL у меня есть что-то вроде этого кода:
extern "C" __declspec(dllexport) void InitPlugin(PluginManager* pMgr)
{
pMgr->RegisterPlugin(new MyPluginObject);
}
MyPluginObject
происходит от чисто виртуального класса PluginObject. В PluginManager::RegisterPlugin()
указатель на объект плагина сохраняется для последующего использования. Я могу успешно вызвать функцию в MyPluginObject
из RegisterPlugin()
, но как только возвращается InitPlugin
, я получаю нарушение прав доступа всякий раз, когда пытаюсь использовать объект плагина, который был сохранен в RegisterPlugin()
. Как мне это исправить?