在调用delete之前删除动态分配的对象?

时间:2011-12-30 06:01:57

标签: c++ plugins dll dynamic-allocation

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

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

MyPluginObject派生自纯虚拟PluginObject类。在PluginManager::RegisterPlugin()中,存储指向插件对象的指针供以后使用。我可以从MyPluginObject内成功调用RegisterPlugin()中的函数,但是一旦InitPlugin返回,每当我尝试使用{{1}中存储的插件对象时,我都会遇到访问冲突}。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

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