我使用Qt 5.3和打电话时无法加载的Qt插件
QPluginLoader pluginLoader(pluginsDir.absoluteFilePath(fileName));
bool pluginLoaded = pluginLoader.isLoaded();
它提供虚假:(
// serverplugin.h
#ifndef SERVERPLUGIN_H
#define SERVERPLUGIN_H
#include <QObject>
#include <QtPlugin>
#include "acepos/aceclient/serverinterface.h"
#include <QThread>
#include "server.h"
class ServerPlugin : public QObject,
public ServerInterface
{
Q_OBJECT
Q_PLUGIN_METADATA(IID "org.qt-project.Qt.AcePos.ServerInterface/1.1" FILE "serverplugin.json")
Q_INTERFACES(ServerInterface)
QThread *m_pServerThread;
Server *m_pServer;
public:
ServerPlugin():m_pServerThread(NULL), m_pServer(NULL){}
private slots:
//void handleServiceStartNotify();
public:
bool startServerService();
bool stopServerService();
};
#endif
// serverinterface.h
#ifndef SERVERINTERFACE_H
#define SERVERINTERFACE_H
#include <QtPlugin>
class ServerInterface
{
public:
virtual ~ServerInterface() { }
virtual bool startServerService() = 0;
virtual bool stopServerService() = 0;
};
#define ServerInterface_iid "org.qt-project.Qt.AcePos.ServerInterface/1.1"
Q_DECLARE_INTERFACE(ServerInterface, ServerInterface_iid)
#endif // SERVERINTERFACE_H
请让我知道是否有问题即时通讯在创建插件。
当我构建插件项目时,我能够看到生成的库文件。我正在为android qt项目做这个。调试时,它工作正常。我在开发过程中对插件进行了修改。
什么das errorString()说? – Silicomancer 2014-10-11 07:44:22
errorString说:“插件验证数据不匹配” – Abin 2014-10-11 08:03:53
即使pluginloader表示false,我也能够获得插件实例QObject * plugin = pluginLoader.instance();如果(插件){qDebug()<< Q_FUNC_INFO <<“插件实例加载”; m_pServerInterface = qobject_cast(插件); if(NULL!= m_pServerInterface){qDebug()<< Q_FUNC_INFO <<“插件已成功载入”; }甚至 –
Abin
2014-10-11 08:04:12