Moin, moin!
Ich versuche eine Klasse aus einer DLL in eine EXE zu importieren. Dazu habe ich die Anleitung von Christian gelesen.
A. DLL
Die von ihm vorgeschlagene Deklaration in der Form:
kann ich nicht kompilieren. Schon die IDE meckert, dass die Deklaration der Klasse nicht existiert bzw. falsch ist und startet den Kompiler nicht. Nachdem ich die Wörter "class" und "DLL_IMP_EXP" vertauscht habe, war scheinbar alles ok. Das ist der vollstaendige Text meiner DLL.H-Datei, die sich kompilieren lässt:
B. EXE
Nachdem ein Button auf der EXE-Form geklickt wird möchte ich die Form aus der DLL anzeigen lassen:
Leider kann ich das EXE-Projekt nicht erstellen. Der Kompiler meckert nicht, stattdessen hat der Linker ein Problem (siehe Anhang).
In das EXE-Projekt habe ich die DLL-H-Datei included, und Include- und Library-Verzeichnisse um den Eintrag des DLL-Projektes erweitert.
Who can help?
Viele Grüße
Markus
Ich versuche eine Klasse aus einer DLL in eine EXE zu importieren. Dazu habe ich die Anleitung von Christian gelesen.
A. DLL
Die von ihm vorgeschlagene Deklaration in der Form:
Code:
//--------------------------------------------------------------------------- #ifndef unImExFormH #define unImExFormH //--------------------------------------------------------------------------- #ifdef __DLL__ # define DLL_IMP_EXP __declspec(dllexport) #else # define DLL_IMP_EXP __declspec(dllimport) #endif //--------------------------------------------------------------------------- #include <Classes.hpp> #include <Controls.hpp> #include <StdCtrls.hpp> #include <Forms.hpp> //--------------------------------------------------------------------------- class DLL_IMP_EXP TImExForm : public TForm ...
Code:
//--------------------------------------------------------------------------- #ifndef unImExFormH #define unImExFormH //--------------------------------------------------------------------------- #ifdef __DLL__ # define DLL_IMP_EXP __declspec(dllexport) #else # define DLL_IMP_EXP __declspec(dllimport) #endif //--------------------------------------------------------------------------- #include <Classes.hpp> #include <Controls.hpp> #include <StdCtrls.hpp> #include <Forms.hpp> //--------------------------------------------------------------------------- DLL_IMP_EXP class TImExForm : public TForm { __published: // IDE-managed Components TLabel *Label1; private: // User declarations public: // User declarations __fastcall TImExForm(TComponent* Owner); }; //--------------------------------------------------------------------------- extern PACKAGE TImExForm *ImExForm; //--------------------------------------------------------------------------- #endif
B. EXE
Nachdem ein Button auf der EXE-Form geklickt wird möchte ich die Form aus der DLL anzeigen lassen:
Code:
void __fastcall TForm1::Button1Click(TObject *Sender) { TImExForm *DllForm = new TImExForm(Application); DllForm->Show(); }
In das EXE-Projekt habe ich die DLL-H-Datei included, und Include- und Library-Verzeichnisse um den Eintrag des DLL-Projektes erweitert.
Who can help?
Viele Grüße
Markus
Comment