ich habe ein Problem mit dem Exportieren von Template-Klassen beim Erstellen einer DLL (Projekt-Template LIB):
Folgendes funktioniert:TEMPLATE=lib
[...]
QT += dll
[...]
Code: Alles auswählen
#ifdef MPOINT_H
#define MPOINT_H
#ifdef BUILD_LIB
#define EXPORT_LIB Q_DECL_EXPORT
#else
#define EXPORT_LIB
#endif
class EXPORT_LIB MPoint
{
[...]
};
#endif
Code: Alles auswählen
#ifdef MPOINT_H
#define MPOINT_H
#ifdef BUILD_LIB
#define EXPORT_LIB Q_DECL_EXPORT
#else
#define EXPORT_LIB
#endif
template <typename T> class EXPORT_LIB MPoint
{
[...]
};
#endif
Intern werden in der Qt-Lib doch auch Template-Klassen wie QHash<>, QList<> etc. exportiert, also müsste o.g. doch auch gehen, oder?[...] MPoint.h(18): error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'MPoint'
[...] MPoint.h(18): error C2470: "MPoint": Sieht wie eine Funktionsdefinition aus, es ist aber keine Parameterliste vorhanden; sichtbarer Funktionstext wird übersprungen.
[...]
Muss ein Klassen-Template vor dem Export erst mit einem Typ T instanziiert werden?
Danke für alle Hinweise,
AlGaN