你用心听 2020-03-17 10:49 采纳率: 0%
浏览 405

Qt Plugin卸载后无法操作本插件的dll文件

希望在运行过程中对插件的原始文件进行操作,
但插件卸载成功后,文件覆盖删除操作都失败。

插件很简单,没有生成任何额外对象

#ifndef DATAVIEWER_H
#define DATAVIEWER_H
#include <QDebug>
#include "iplugin.h"
class DataViewer : public QObject, public IPlugin
{
    Q_OBJECT
    Q_INTERFACES(IPlugin)
    Q_PLUGIN_METADATA(IID iid_flower FILE "DataViewer.json")

public:
    DataViewer(QObject *parent = 0):QObject(parent){
//        qDebug() <<"create";
    }
    ~DataViewer(){
//        qDebug() << "delete";
    }

    bool initialize(){return true;}
    bool extensionsInitialized(){return true;}
    bool stop(){return true;}

    void recMsg(PluginMetaData){}

signals:
    void sendMsg(PluginMetaData);
};

#endif // DATAVIEWER_H

插件加载后即下载,然后删除文件失败

#include <QCoreApplication>
#include <QPluginLoader>
#include <QFile>
#include <QDebug>
int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
    QPluginLoader load("D:/Project/Qt/Flower/debug/plugins/DataViewer.dll");
    qDebug()<<load.load();
    qDebug()<<load.unload();
    qDebug()<<QFile::remove("D:/Project/Qt/Flower/debug/plugins/DataViewer.dll");
    return a.exec();
}

输出

true
true
false

  • 写回答

2条回答 默认 最新

  • ┲﹊迷茫。 2020-11-24 11:05
    关注

    你好,请问你解决了这个问题了吗,我也出现这个问题了

    评论

报告相同问题?

悬赏问题

  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料