ich habe ein Projekt von mir, was ich gerne in eine dll auslagern möchte. Die ersten Schritte haben alle einwandfrei funktioniert, aber nun habe ich Signale innerhalb meiner dll definiert und komme mit der Fehlermeldung einfach nicht mehr weiter.
Erst das Beispiel:
Code: Alles auswählen
// mysourcedll_global.h
#ifndef MYSOURCEDLL_GLOBAL_H
#define MYSOURCEDLL_GLOBAL_H
#include <Qt/qglobal.h>
#ifdef MYSOURCEDLL
# define MYSOURCEAPI Q_DECL_EXPORT
#else
# define MYSOURCEAPI Q_DECL_IMPORT
#endif
#endif // MYSOURCEDLL_GLOBAL_H
Hier die Klasse:
Code: Alles auswählen
// mysourcedll.h
//#pragma once
#ifndef MYSOURCEDLL_H
#define MYSOURCEDLL_H
#include "mysourcedll_global.h"
/****************************************************************************************/
/*** Includes ***/
/****************************************************************************************/
#include <QString>
#include <QThread>
#include <QDebug>
#include <QObject>
class MYSOURCEAPI MySourceDLL: public QObject
{
Q_OBJECT
private:
// ...
public:
MySourceDLL(void);
~MySourceDLL(void);
void foo1(void);
bool foo2(void);
int foo3(void);
signals:
void connected(bool bSuccess);
};
Code: Alles auswählen
#pragma once
#include "mysourcedll.h"
MySourceDLL::MySourceDLL(void)
{
//....
emit connected(true);
}
void MySourceDLL::foo1(void)
{
//...
}
bool MySourceDLL::foo2(void)
{
//...
emit connected(false)
return true;
}
int MySourceDLL::foo3(void)
{
//...
return 0;
}
Was mache ich falsch bzw. wo liegt mein Fehler?1>.\GeneratedFiles\Debug\moc_mysourcedll.cpp(47) : warning C4273: 'staticMetaObject': Inkonsistente DLL-Bindung.
1> c:\projekte\mysourcedll\generatedfiles\debug\../../mysourcedll.h(26): Siehe vorherige Definition von 'public: static QMetaObject const MySourceDLL::staticMetaObject'
1>.\GeneratedFiles\Debug\moc_mysourcedll.cpp(47) : error C2491: 'MySourceDLL::staticMetaObject': Definition von Statisches Datenmember für dllimport nicht zulässig
1>.\GeneratedFiles\Debug\moc_mysourcedll.cpp(57) : warning C4273: 'MySourceDLL::metaObject': Inkonsistente DLL-Bindung.
1> c:\projekte\mysourcedll\generatedfiles\debug\../../mysourcedll.h(26): Siehe vorherige Definition von 'metaObject'
1>.\GeneratedFiles\Debug\moc_mysourcedll.cpp(62) : warning C4273: 'MySourceDLL::qt_metacast': Inkonsistente DLL-Bindung.
1> c:\projekte\mysourcedll\generatedfiles\debug\../../mysourcedll.h(26): Siehe vorherige Definition von 'qt_metacast'
1>.\GeneratedFiles\Debug\moc_mysourcedll.cpp(70) : warning C4273: 'MySourceDLL::qt_metacall': Inkonsistente DLL-Bindung.
1> c:\projekte\mysourcedll\generatedfiles\debug\../../mysourcedll.h(26): Siehe vorherige Definition von 'qt_metacall'
1>.\GeneratedFiles\Debug\moc_mysourcedll.cpp(88) : warning C4273: 'MySourceDLL::connected': Inkonsistente DLL-Bindung.
1> c:\projekte\mysourcedll\generatedfiles\debug\../../mysourcedll.h(155): Siehe vorherige Definition von 'connected'
1>.\GeneratedFiles\Debug\moc_mysourcedll.cpp(95) : warning
...
...
...