ich habe ein Problem bei der Erstellung von DLLs unter QT 4.
Die DLL, die ich gemacht habe, wird in meiner Hauptapplikation leider nicht in den QPluginLoader eingeladen (bekomme einen NULL-Pointer zurück).
Ich habe mal ne kleine DLL als Beispiel gemacht wo aber leider derselbe Fehler entsteht.
Hier die Schnittstelle:
Code: Alles auswählen
class Test
{
public:
virtual ~Test() = 0;
virtual int get_Integer() = 0;
};
Q_DECLARE_INTERFACE(Test, "1")
Code: Alles auswählen
#ifndef MYQTPROJECT_H
#define MYQTPROJECT_H
#include <QtCore/qglobal.h>
#include "interface.h"
#ifdef Q_OS_WIN
# ifdef BUILD_MYQTPROJECT
# define MYQTPROJECT_EXPORT __declspec(dllexport)
# else
# define MYQTPROJECT_EXPORT __declspec(dllimport)
# endif
#else
# define MYQTPROJECT_EXPORT
#endif
#endif
class Plugin : public QObject, public Test
{
Q_OBJECT
Q_INTERFACES(Test)
public:
Plugin()
{
}
~Plugin()
{
}
int get_Integer()
{
return 5;
}
}
Q_EXPORT_PLUGIN(Plugin)
Code: Alles auswählen
#include <QCoreApplication>
#include <QPluginLoader.h>
#include "interface.h"
#include <iostream>
int main(int argc, char *argv[])
{
QCoreApplication app(argc, argv);
QPluginLoader loader("C:/MyQtProject2/debug/MyQtProject.dll");
QObject* object;
object = loader.instance();
return 0;
}
Ich erzeuge einfach ein neues QT Shared Library Projekt, werfe alle Dateien bis auf die Hauptdatei raus und schreibe meinen Code in die Hauptdatei.
Ich hoffe mir kann jemand helfen....
Gruß
ToTTo