我使用plotter = qobject_cast<PlotterInterface*>(plugin);
初始化插件当我关闭应用程序时,在closeEvent(QCloseEvent *event)
我尝试使用delete plotter;
删除插件但是我崩溃了。如果我没错,可以删除用new创建的对象。为什么我会遇到这个崩溃?
编辑(插件导入):
QPluginLoader* pluginLoader = new QPluginLoader(pluginDir.absoluteFilePath(fileName));
QObject* plugin = pluginLoader->instance();
plotter = qobject_cast<PlotterInterface*>(plugin);
plotter->initPlotter();
答案 0 :(得分:1)
来自文档:
...当QPluginLoader被销毁时,不会删除此函数返回的根组件。如果要确保删除根组件,则应在不再需要访问核心组件时立即调用unload()...
不要尝试删除根组件。而是依赖于unload()会在需要时自动删除它。
尝试使用卸载并查看问题是否仍然存在。