プラグイン システムを実装しようとしていますが、いくつか問題があります。プラグイン DLL には、次のようなコードがあります。
extern "C" __declspec(dllexport) void InitPlugin(PluginManager* pMgr)
{
pMgr->RegisterPlugin(new MyPluginObject);
}
MyPluginObject
純粋な仮想 PluginObject クラスから派生します。ではPluginManager::RegisterPlugin()
、プラグイン オブジェクトへのポインタは、後で使用するために保存されます。MyPluginObject
内からの関数を正常に呼び出すことができますRegisterPlugin()
が、一度InitPlugin
戻ると、 に格納されたプラグイン オブジェクトを使用しようとすると、アクセス違反が発生しRegisterPlugin()
ます。これを修正するにはどうすればよいですか?