0

我正在尝试实现一个插件系统,但我遇到了一些问题。在插件 DLL 中,我有这样的代码:

extern "C" __declspec(dllexport) void InitPlugin(PluginManager* pMgr)
{
    pMgr->RegisterPlugin(new MyPluginObject);
}

MyPluginObject派生自纯虚拟 PluginObject 类。在PluginManager::RegisterPlugin()中,指向插件对象的指针被存储以供以后使用。MyPluginObject我可以从内部成功调用一个函数RegisterPlugin(),但是一旦InitPlugin返回,每当我尝试使用存储在RegisterPlugin(). 我该如何解决?

4

1 回答 1

1

好吧,我当然在这里问一个问题,10分钟后自己弄清楚。这个问题实际上与此无关,而是我使用自己的类来处理 DLL 文件的加载。事实证明,该类被意外删除的时间比预期的要早,并且它用它卸载了 DLL,这使 DLL 中的所有内容都无效。

于 2011-12-30T06:23:16.697 回答