000
02.12.2005, 10:21 Uhr
~SaureGurke
Gast
|
Hallo,
ich habe eine DLL, in der mehrere Klassen definiert werden, sieht in etwa so aus:
class FIRSTDLL_EXPORT FirstClass : public QObject { Q_OBJECT public: FirstClass(QObject *parent = 0); ~FirstClass(); [...bla...] };
Das Makro FIRSTDLL_EXPORT ist beim erstellen der DLL auf __declspec(dllexport) gesetzt, beim verwenden (in einer anderen DLL) auf __declspec(dllimport) gesetzt.
Das erstellen dieser DLL läuft wunderbar, allerdings wenn ich die zweite DLL (die die erste benutzt) erstellen will, bekomme ich folgende Fehlermeldungen:
Kompilieren... secondclass.cpp zprojects\Dll-Test\SecondDll\..\FirstDll\firstclass.h(9) : error C2470: 'FirstClass': Sieht wie eine Funktionsdefinition aus, es ist aber keine Liste mit formalen Parametern vorhanden; sichtbarer Funktionstext wird übersprungen zprojects\Dll-Test\SecondDll\..\FirstDll\firstclass.h(9) : error C2059: Syntaxfehler: 'public' secondclass.cpp(5) : error C2512: 'FirstClass': Kein geeigneter Standardkonstruktor verfügbar
Die zweite Klasse sieht so aus:
#include "defines.h" #include "..\firstdll\firstclass.h"
class FirstClass; class QObject;
class SECONDDLL_EXPORT SecondClass { public: SecondClass(); ~SecondClass();
FirstClass *myFirstClass;
private:
};
Kann mir jemand sagen, was hier los ist und wie ich das sauber kompiliert bekomme?
Vielen Dank im Voraus...
Gruß SaureGurke |