ich hab hier ein Problem mit dem Exportieren von structs in eine DLL.
Mein .pro-File:
Code: Alles auswählen
TEMPLATE = lib
DEPENDPATH += . qesp
QT -= gui
CONFIG += dll qt thread debug
DEFINES += BUILD_DLL
...
HEADERS += Buffer.hpp \
[...]
Message.hpp \
Testklasse.hpp \
XBuf.hpp
SOURCES += Buffer.cpp \
[...]
Testklasse.cpp \
XBuf.cpp
Code: Alles auswählen
#ifndef MESSAGE_H
#define MESSAGE_H
#include <QtGlobal>
#ifdef BUILD_DLL
#define EXPORT_DLL Q_DECL_EXPORT
#else
#define EXPORT_DLL
#endif
[...]
struct EXPORT_DLL sm {
...
}
[...]
#endif // MESSAGE_H
Code: Alles auswählen
#ifndef TESTKLASSE_H
#define TESTKLASSE_H
#include <QTime>
#include "Message.hpp"
#ifdef BUILD_DLL
#define EXPORT_DLL Q_DECL_EXPORT
#else
#define EXPORT_DLL
#endif
class EXPORT_DLL Testklasse : public QObject
{
[...]
};
#endif
Code: Alles auswählen
#include <QtDebug>
[...]
#include "Testklasse.hpp"
[...]
Testklasse::Testklasse()
{
qRegisterMetaType<sm>("sm");
}
[...]
"qRegisterMetaType: nichtdeklarierter Bezeichner"
"sm": Ungültige Verwendung dieses Typs als Ausdruck
Deshalb meine Frage: Da ich bisher das Export-Makro immer nur in Zusammenhang mit Klassen gesehen habe
(
Code: Alles auswählen
class EXPORT_DLL Klasse
[...]
Da ich auch im Web kein Tutorial zu Q_DECL_EXPORT finden konnte, wäre ich um Aufklärung dankbar.