Statische DLL?
-
Hi,
bisher habe ich für mein Projekt DLLs benutzt, jetzt möchte ich aber alles ( Engine, etc. ) mit in der EXE haben. Kann man die DLLs denn irgendwie in die EXE hineinpacken?
Ich benutze VC++ 2005, weiss aber nicht, wie man da aus DLL statische Sachen macht.
Wäre toll, wenn mir jemand helfen könnte.
-
Stell doch einfach das DLL Projekt von DLL auf LIB um... ist wohl das einfachste...
=>
Projekteinstellungen: "General|Configuration Type"
von "Dynamic Library (.dll)"
nach "Static Library (.lib)"
-
Hm, funktioniert leider nicht.
Das Programm sagt mir zwar, dass die Bibliothek erfolgreich erstellt wurde, aber es wird gar keine Datei erzeugt.
Muss man noch andere Einstellungen vornehmen?
-
WAS funktioniert nicht?
-
Es passiert nichts. Es wird keine .lib-Datei erstellt.
-
Evtl. findest du sie nur nicht? Hast du mal danach gesucht?
-
Na sicher. In dem Verzeichnis, wo vorher meine DLL erstellt wurde ist jetzt gar nichts mehr. Auch in den anderen Orndern des Projekts hab ich nichts gefunden.
-
In den Projekteinstellungen sollte drin stehen, wohin die lib erstellt wird.
-
Danke, du hast Recht. Der Pfad war völlig falsch. Jetzt habe ich also meine Lib, aber wie kann ich die Funktionen darin jetzt verwenden?
-
1.) Statische DLL gibst nicht.
2.) Für dein anderes Projekt stellst sagst du deinem Compiler das er diese Lib brauchst, aber kopiere sie in einen Ordner, wo dein Compiler such oder füge dein Projektordner dem hinzu.
-
1.) Statische DLL gibst nicht.
Ja, ist mir nach dem Erstellen des Threads auch aufgefallen. Es heisst ja nicht umsonst Dynamic Link Library.
Jetzt hab ich es jedenfalls verstanden. Ich muss einfach den Prototypen der Funktion hinschreiben und die .lib importieren. Ist echt simpel.
Das Problem ist nur, dass ich das nicht für C++ brauche, sondern für eine andere Sprache. Und mit der funktioniert diese statische Sache irgendwie nicht. Ich werde mal im dortigen Forum nachfragen.Vielen Dank an alle, dass ihr mir weitergeholfen habt.
-
dllkiller schrieb:
Das Problem ist nur, dass ich das nicht für C++ brauche, sondern für eine andere Sprache.
Soll das ein Witz sein? Und das sagst Du er jetzt?
-
Soll das ein Witz sein?
Eigentlich nicht. Mit welcher Sprache ich die Bibliothek letztendlich benutze, ist doch egal. Es ging mir nur um das Erstellen und das hat ja jetzt geklappt.
-
Hab ich jetzt nicht ganz verstanden...
Welche *andere* Sprache ausser MS VC++ kann den LIB-Dateien verwenden!?
-
Momentmal, das ABI nicht vom jeden Compiler gleich.
D.h. eine Mit Visual C++ komplierte Lib kann man nicht so weiteres für Mingw oder Borland verwendet. Entsprechende Konventierungstool gesucht!
Für andere Sprachen sind da oft spezielle Deklarationen nötig.
Kann man ja Boost.Python angucken http://www.boost.org/libs/python/doc/tutorial/doc/html/index.html
-
Ich brauche die Lib für MinGW im weitesten Sinne.
Dass man .lib-Dateien damit nicht verwenden kann, wusste ich nicht. Und damit hätte sich das dann auch erledigt.
-
Wieso kompilierst du dein Source nicht einfach mit Mingw? :o
-
Aprollo schrieb:
Wieso kompilierst du dein Source nicht einfach mit Mingw? :o
Das wäre doch viel zu einfach!
-
Nebenbei unterstützt MinGW ein Stückchen weit .lib wenn man sie als Argument ohne -l angibt ...
-
und welchen Typ lib? Da gibt es ja einige.