mich treibt folgendes Problem hier her:
Ich habe in QT 4.8.2 ein Programm geschrieben, das seine wichtigste Funktionalität durch Plugins erhält.
In QT 4.8.2 hat noch alles einwandfrei funktioniert, nun konvertiere ich es auf Qt 5.
Folgender Abschnitt funktioniert seither nicht mehr wie vorgesehen:
Code: Alles auswählen
//Die Variable fileName enthält die Bezeichnung der .dll
pluginLoader->setFileName(pluginsDir->absoluteFilePath(fileName));
//In a steht nach dem folgenden Befehl auch die korrekte Bezeichnung samt Pfad. Sprich der pluginLoader kennt die Datei nun
QString a = pluginLoader->fileName();
//Bis hier her läuft alles wie gewohnt. Jetzt kommt der "Fehler".
//plugin bleibt leer und success ist dementsprechend false
QObject *plugin = pluginLoader->instance();
bool success = pluginLoader->isLoaded();
Mein Plugin-Header:
Code: Alles auswählen
class NLPro : public QObject, IConnection
{
Q_OBJECT
Q_PLUGIN_METADATA(IID "NLPro" FILE "nlpro.json") // <- Neu seit Qt 5
Q_INTERFACES(IConnection)
...
}
Code: Alles auswählen
Q_EXPORT_PLUGIN2(NLPro, NLPro); // Habe ich aus der .cpp rausgeschmissen
Code: Alles auswählen
{ "Keys": [ "NLPro"] }
"The file '.../plugins/nlprod.dll' is not a valid Qt plugin."
Ich habe mir Beiträge wie
http://qt-project.org/doc/qt-5.0/qtwidg ... paint.html
und
http://qt-project.org/wiki/Transition_f ... 4.x_to_Qt5
durchgelesen und das ganze eben auch nach diesem Vorbild umgebaut, jedoch verstehe ich nicht, warum mein Plugin nicht geladen wird.
Hat hier jemand eine Idee?
Vielen Dank im Voraus.
Grüße
Feyh