Library erstellen
-
Hi!
Wie kann ich MSVC anweisen eine .lib zu erstellen? Keine DLL!Danke schonmal im Voraus für alle Antworten.
-
Du kannst doch bei einer neuanlage eines projekts einfach eine Win32-Bibliothek (statisch) erstellen...
-
ok, aber wie mache ich dem Compiler klar, welche Klassen und Funktionen ich exportieren möchte? Oder wird alles exportiert?
-
Du erstellst ja ein Projekt in der Projektmappe. Und dieses Projekt definierst du, wie bereits gesagt, als satische LIB. Alles was in dem Projekt ist wird beim erstellen als LIB gebaut. Ist eigentlich fast wie bei einer EXE, nur das kein main() dabei ist und andere LIBs, die du da benutzt, da nicht mit reinkommen (logisch, sonst ist alles doppelt gemoppelt).
Zum testen der Lib in der Entwicklungsphase, kannst du dann ein zweites Projekt in der Projektmappe erstellen, wo dann die main() drin ist und du deine eigene Lib verlinkst.
Wenn du die LIB verteilst, gibst du die LIB-Datei (liegt dann im Debug-/Release-Verzeichnis) und die Header-Dateien raus. Die CPPs werden dann nicht benötigt.
Probier es doch einfach mal aus. Ist eigentlich idiotensicher das Ding.
-
Es gibt bestimmte Funktionen, die ich in der Lib nutze, die aber nicht exportiert werden sollen. Also kann ich die nicht "ausschließen"?
-
Ehm, was verstehst du unter "nutzen"? Meinst du, das du Funktionen z.B. aus der MFC nutzt? Oder meinst du, selbst geschriebene Funktionen?
Falls letzteres: Du könntest z.B. einfach die zu versteckenden Funktionen aus der Header raus nehmen. Dann weiß niemand, das es diese gibt.
Oder du programmierst das ganze objekt orientiert in C++. :p Da kannst du nämlich vieles private machen oder in Namespaces verstecken, die nur zur Implementierung gehören und dem Lib-Anwender nur die Namespaces zur Verfügung stellen, die er sehen soll. Ist doch ganz easy?