Plugin selber schreiben.

Alles rund um die Programmierung mit Qt
Antworten
abcschützling
Beiträge: 24
Registriert: 27. Oktober 2009 22:37

Plugin selber schreiben.

Beitrag von abcschützling »

Hallo Leute,

ich versuche gerade ein Plugin selber zu schreiben. Leider funktioniert das nicht so sehr. :( Vielleicht kann mir da jemand helfend zur Seite springen.

So sieht die Schnittstelle auf der Anwendungsseite aus:

#ifndef INITIMAGEPLUGININTERFACE_H
#define INITIMAGEPLUGININTERFACE_H

class QImage;

class InitImagePluginInterface {

public:
virtual ~InitImagePluginInterfae(){}

// Methode für die Initialisierung
virtual void init(QImage &image);
};

Q_DECLARE_INTERFACE(InitImagePluginInterface,"com.abc.BA_0.InitImagePluginInterface/1.1")

#endif

So sieht die integration der Schnittstelle in das Plugin aus:

#ifndef MYINITIMAGEINTERFACE_H
#define MYINITIMAGEINTERFACE_H

#include "../BA_0/InitImagePluginInterface.h"

class QObject;

class MyInitImageInterface : public QQbject,
public InitImagePluginInterface
{

Q_OBJECT
Q_INTERFACES(InitImagePluginInterface)

public:
void init(QImage &image);
};
#endif

Und so die dazu gehörige .cpp Datei:

#include <QtGui>

#include "MyInitImageInterface.h"
#include "Window.h"

void MyInitImageInterface::init(QImage &image)
{
Window window(image);
}
Q_EXPORT_PLUGIN2(myinitimageinterface, MyInitImageInterface)

Mehr ist das nicht. Aber es funktioniert aus irgendwelchen Gründen nicht.

Gruß
abcschützling
Beiträge: 24
Registriert: 27. Oktober 2009 22:37

Das sind übrigens die Fehlermeldungen.

Beitrag von abcschützling »

Kompilieren...
moc_MyInitImageInterface.cpp
main.cpp
MyInitImageInterface.cpp
Code wird generiert...
Verknüpfen...
Bibliothek '..\BA_0.0.4\plugins\testfilter\Test Filter Interface lib.lib' und Objekt '..\BA_0.0.4\plugins\testfilter\Test Filter Interface lib.exp' wird erstellt
MyInitImageInterface.obj : error LNK2019: Nicht aufgelöstes externes Symbol '"public: __thiscall Window::Window(class QImage &)" (??0Window@@QAE@AAVQImage@@@Z)', verwiesen in Funktion '"public: virtual void __thiscall MyInitImageInterface::init(class QImage &)" (?init@MyInitImageInterface@@UAEXAAVQImage@@@Z)'
MyInitImageInterface.obj : error LNK2001: Nichtaufgelöstes externes Symbol "public: virtual void __thiscall InitImagePluginInterface::init(class QImage &)" (?init@InitImagePluginInterface@@UAEXAAVQImage@@@Z)
main.obj : error LNK2001: Nichtaufgelöstes externes Symbol "public: virtual void __thiscall InitImagePluginInterface::init(class QImage &)" (?init@InitImagePluginInterface@@UAEXAAVQImage@@@Z)
..\BA_0.0.4\plugins\testfilter\Test Filter Interface lib.dll : fatal error LNK1120: 2 unaufgelöste externe Verweise
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

1. Benutze bitte die [

Code: Alles auswählen

] - Tags!
2. Wenn er Window::Window() nicht findet wirst Du wohl vergessen haben es zu implementieren.
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
Antworten