Thomas schrieb:
> Hallo Gemeinde.
>
> Meine Umgebung: MS Visual C++ 2010 Express Edition
>
> Kann mir jemand kurz und prägnant den Unterschied zwischen einer DLL-
> und einer OBJ-Datei erläutern?
OBJ-File
entsteht aus einem Source Code File und enthält bereits
Maschinencode, so wie er vom Prozessor ausgeführt werden
kann
eine Library
eine Sammlung von OBJ-Dateien, so dass der Inhalt von mehreren
OBJ-Dateien in eine gemeinsame Library zusammengeführt wird.
Der Name sagt es schon "Bibliothek". Und so wie es in einer
Bibliothek einen Haufen Bücher gibt, aus denen sich der Leser
die für sich interessanten heraussucht, so sucht sich der Linker
beim Zusammenbau eines Programms aus der Library die Funktionen
die er für das vollständige Programm benötigt.
eine DLL
eine spezielle Form einer Library, die so aufgebaut ist, dass
ihr Inhalt erst zur Laufzeit des Programmes zum Programm
'hinzugefügt' wird.
Wie dieses hinzufügen genau passiert ist per se nicht festgelegt.
Das kann in wortwörtlicher Form passieren, in dem die DLL
beim Laden des Programmes in den Speicherraum des Programmes
mitgeladen wird. Das kann aber auch ein anderer Mechanismus sein,
bei dem die Funktionen in der DLL über andere Mechanismen vom
Programm aus verwendbar sind.
> Hintergrund: Kann ich in meinem Project gegen eine OBJ-Datei linken?
Ja, natürlich. Das ist sogar der Normalfall.
> Wenn ja, wie funktioniert dies? Brauche ich hierfür die entsprechende
> Header-Datei?
Irgendwie muss deinem Source Code bekannt gemacht werden, welche
Funktionen es gibt und wie sie aufzurufen sind. In welcher Form das dann
auch immer passiert. Für C oder C++ ist die übliche Form ein Header
File.