就不費話了,直接點
來一個我做的插件例子
//! 插件基類 class PluginAddon : public QObject
{
Q_OBJECT
public:
(){}
virtual ~(){}
public:
...
signals:
void notify(const Target& t);
};
Q_DECLARE_INTERFACE(,"ooo/1.0.0")
具體插件
class cPluginon
: public PluginAddon
{
Q_OBJECT
// 將該接口注冊到Qt的meta-object system
Q_INTERFACES(PluginAddon)
public:
...
};
.cpp
Q_EXPORT_PLUGIN2(cplug_Plugin,cPluginon)
這個宏所在頭文件是:
#include <QtPlugin>
至于插件的使用.
loader
= new QPluginLoader("dongrays_Plugin.dll"); QObject* instance = loader->instance();
if(instance)
{
interface = qobject_cast<Addon*>(instance);
connect(interface,SIGNAL(notify(target)),this,SLOT(getInfo(target)));
}
談過connect照樣可以再插件之前傳送數據