Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » VC++ / MFC » dll/lib erstellen & richtig in project einbinden

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
03.10.2006, 12:10 Uhr
~global
Gast


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.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
03.10.2006, 13:48 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


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 class class __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 class class __declspec(dllexport)
#endif

#include "classxy.h"
#include "classz.h"
// usw




und diesen inkludierst du dann in deinem Programm:


C++:
// Mein Programm.cpp
#include "../../meinelib/meinelib.h"

int main(void)
{
  ClassXY xy(4, 15);
  ClassZ z("Hallo Welt");

  xy.add();
  z.print();
}


--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
03.10.2006, 15:03 Uhr
~global
Gast


hi, hört sich ja ganz einfach an... werd ich dann gleich mal probieren.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ VC++ / MFC ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: