Hallo,
Allgemein gilt jedoch, daß man .DLLs nicht einfach statisch einbinden kann.
jein - wenn man sie nur in compilierter Form vorliegen hat, dann hast du natürlich Recht. Hat man die Bibliothek dagegen im Quellcode, kann man sie selbstverständlich statisch eincompilieren, anstatt sie separat als DLL zu übersetzen/linken.
Wenn man aber eine Linkerbibiliothek (die hat unter Windows üblicherweise die Endung .lib) hat, die (mindestens) die in der .DLL enthaltenen Routinen als Objektmodule enthält, kann man die .lib in die Parameterliste des Linkers aufnehmen. Der holt sich dann nur diejenigen Module heraus, die vom jeweiligen Programm tatsächlich benötigt werden und bindet sie statisch dazu.
Korrekt. Der eigentliche Programmcode bleibt aber in der DLL, deshalb ist diese nachher für die Programmausführung notwendig. Denn der Linker erzeugt nur einen "stub" für jede Funktion in der DLL, quasi eine Art Referenz. Er kann nicht den tatsächlichen Programmcode aus der DLL nehmen und in das erzeugte Programm einbauen.
Schönen Sonntag noch,
Martin
Ich liebe Politiker auf Wahlplakaten.
Sie sind tragbar, geräuschlos, und leicht wieder zu entfernen.
(Loriot, deutscher Satiriker)