Statische Library als DLL kompilieren / dllexport, dllimport
-
Ich habe hier den Sourcecode einer Library liegen, die ich gerne als DLL hätte. Die statische Version kann ich schonmal kompilieren, die dynamische Version versuche ich so zu bauen:
cl -c src1.cpp src2.cpp -I../dependency link -dll object1.obj object1.obj ../dependency/dep.lib
Ich bekomme auf diese Weise zumindest eine *.dll ausgespuckt, aber die dazugehörige Import-Library fehlt. Nun ist es aber auch so, dass im Sourcecode keine dllimports / dllexports deklariert sind, weil ein DLL-Build vom Autor nicht vorgesehen wurde. In der MSDN habe ich keine wirkliche Abhilfe gefunden, demnach müsste ich die Deklaration vor jede betreffene Funktion setzen oder aber über eine Datei verfügen, die die zu exportierenden Funktionen auflistet.
Meine Fragen sind nun:
1.) Gibt es eine elegante Methode, die dllexports hinzuzufügen oder ein "Module Definition File" zu erstellen bzw. einfach alles zu exportieren?
2.) Hätte alles zu exportieren Nachteile, sollte es möglich sein?
3.) Was hat es mit dllimport und dllexport genau auf sich? Ich sehe nicht ein, warum es einer Sonderbehandlung bedarf, um Funktionen "von außen" aufrufen zu können. Gleiche Frage bei dllimport, schließlich habe ich zu jeder .dll eine *.lib Datei, die mir ein "Interface" zur *.dll bietet, was passiert also bei der Anwendung von dllimport genau?
-
Dieser Thread wurde von Moderator/in rüdiger aus dem Forum Rund um die Programmierung in das Forum Compiler- und IDE-Forum verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.