官方写法:http://doc.qt.io/qt-5/plugins-howto.html
qt5软件-示例-搜索plugin里面很多不再赘述。
环境win10_64bit+Qt5.6.2MinGW
plugin遇到的错误:
以qt5 示例 echoplugin来说明这个错误
class EchoInterface
{
public:
virtual ~EchoInterface() {}
//=0很重要,如果不=0debug模式无法解析该函数,release正常
//virtual void fun(){} <-void类型需要实现不然一样无法解析。
virtual QString echo(const QString &message) = 0;
};
//! [0]
class EchoPlugin : public QObject, EchoInterface
{
Q_OBJECT
Q_PLUGIN_METADATA(IID "org.qt-project.Qt.Examples.EchoInterface" FILE "echoplugin.json")
Q_INTERFACES(EchoInterface)
public:
QString echo(const QString &message) Q_DECL_OVERRIDE;
};
//! [0]
当EchoPlugin 类中没有完全实现EchoInterface类中的虚函数就会报错,注意连const之类的关键字也要一样。
下面是使用中错误
提示找不到SqliteClass.dll(此为自定义的plugin) 路径什么的都是对的,后来发现是SqliteClass模块中依赖别的库没有复制到当前路径下,所以提示找不到指定程序,很迷惑的提示。