今天我学习了插件的相关知识,但没搞懂这东西在哪有用。
插件的创建过程是这样的,有不足之处指出
定义一个class a,其内部有个析构函数和一些纯虚函数,在其.h文件中尾部用QT_DECLEAR_INTERFACE将其声明为接口类。
然后定义一个class b:public QObject,a,的类b的内部实现类a的所有虚函数。在类b的.cpp文件的尾部,用QT_EXPORT_PLUGIN宏将类b,指定输出为一个插件,工程的.pro文件CONFIG +=PLUGIN 和TEMPLATE =LIB,编译可以输出一个.dll文件,这个.dll文件就是插件了吧。
我原本以为只要把这个.dll文件放在其他工程文件中,用QPluginLoader类的对象去加载就可以用了,后来发现还要#include"a.h"
最后我就搞不懂还要这个include干什么,难道我用别人的插件还要把人家的接口类的头文件找来???
Q_DECLARE_INTERFACE(Tax,"TaxDLL/1.0"); //这个宏用声明接口
这个接口声明的第二参数,还要指明一个程序名称,那样的话就不能拿到别的程序上用了??