hi! ich habe ein etwas umfangreicheres project mit mehreren arbeitsbereichen, in denen ich teilweisse die selben classen verwenden muss. da das project noch "wächst" und diese classen noch nicht endgültig fertig sind will ich sie in eine dll/lib packen, damit ich sie zentral bearbeiten kann (werd hier sonst blöde wenn ich an 4-5 stellen immer das selbe ändern müsste). jetzt meine eigentliche frage: was für eine dll/lib leg ich da an ? und wie bind ich die dann ein bzw. benutz dann die classen aus der dll/lib in meinem programm.
Hi, für klassen empfiehlt sich evtl eine statische Bibliothek (nur lib). Du musst dann deine Klassen in folgender Art definieren:
C++:
#if defined _WIN32 && defined _USRDLL # define classclass__declspec(dllexport) #endif
class MyClass { };
Durch das define erzeugt er aus "class" autmatisch "class __declspec(dllexport)" was dne VC anweist die Klasse zu exportieren.
Zum einbinden machst du am geschicktesten folgendes: du fügst das Projekt in den Workspace deiner Anwendung hinzu (das du dann 2 Projekte drin hast, deine Anwendung und die Lib) und setzt dann die Abhängigkeiten von der App auf die Lib. Dann linkt er die Lib automatisch hinzu. Nun musst du nur noch obigen header in deiner App einbinden und somit die Klasse bekannt machen. Die Implementierung läd er dann aus deiner lib.
Evtl machst du dir von deiner lib einen festen header:
C++:
// Library Main Header
#if defined _WIN32 && defined _USRDLL # define classclass__declspec(dllexport) #endif
#include"classxy.h" #include"classz.h" // usw
und diesen inkludierst du dann in deinem Programm: