DLL versus LIB
Een bibliotheek is een verzameling bronnen die kunnen worden gebruikt om applicaties te ontwikkelen. Een bibliotheek bestaat meestal uit subroutines, functies, klassen, waarden en typen. Tijdens het koppelingsproces (meestal gedaan door een linker), verwijzen bibliotheken en uitvoerbare bestanden naar elkaar. Bibliotheekbestanden worden onderverdeeld in statische en dynamische bibliotheken, afhankelijk van het tijdstip waarop de subroutines naar de doeltoepassing worden geladen. Dienovereenkomstig zijn LIB-bestanden statisch gekoppelde bibliotheken en zijn DLL-bestanden dynamisch gekoppelde bibliotheken.
Wat is DLL?
Dynamic Link Library (beter bekend als DLL) is een gedeelde bibliotheekimplementatie die is ontwikkeld door Microsoft. Het maakt gebruik van de.dll,.ocx of.drv extensies en ze worden gebruikt in Microsoft Windows en OS / 2 besturingssystemen..dll wordt gebruikt door de reguliere DLL-bestanden. En.ocx-extensie wordt gebruikt door bibliotheken die ActiveX-besturingselementen bevatten en.drv-extensie wordt gebruikt door oudere systeemstuurprogrammabestanden. Het DLL-bestandsformaat is hetzelfde als de Windows EXE-bestanden (Portable Executable-bestanden op 32-bit / 64-bit Windows en New Executable op 16-bit Windows). Daarom kan elke combinatie van code, gegevens en bronnen in DLL-bestanden staan (net als in EXE-bestanden). Gegevensbestanden met het DLL-bestandsformaat worden trouwens bron-DLL's genoemd. Pictogrambibliotheken (met.icl-extensie) en lettertypebestanden (met.fon- en.fot-extensies) zijn voorbeelden van bron-DLL's.
Componenten die secties worden genoemd, vormen een DLL en elke sectie heeft zijn eigen attributen zoals alleen-lezen / beschrijfbaar en uitvoerbaar / niet-uitvoerbaar. Codesecties zijn uitvoerbaar, terwijl gegevenssecties niet uitvoerbaar zijn. De codesecties zijn gedeeld en de gegevenssecties zijn privé. Dat betekent dat alle processen die de DLL gebruiken, dezelfde kopie van de code gebruiken, terwijl elk proces zijn eigen kopie van de gegevens heeft. De primaire dynamische bibliotheek voor Windows is kernel32.dll, die de basisfuncties (bestands- en geheugengerelateerde functionaliteit) op Windows bevat. COM (Component Object Model) is de uitbreiding van DLL naar OOP (Object Oriented Programming). Conventionele DLL's zijn gemakkelijker te gebruiken dan COM-bestanden.
Wat is LIB?
LIB-bestanden zijn statische bibliotheken (ook bekend als statisch gekoppelde bibliotheken). LIB-bestanden bevatten een verzameling subroutines, externe functies en variabelen. LIB-bestanden worden tijdens het compileren opgelost (in tegenstelling tot runtime). De code wordt daadwerkelijk naar de doeltoepassing gekopieerd. Een compiler, linker of een binder zal deze resolutie uitvoeren en een objectbestand en een uitvoerbaar bestand produceren. Dit proces wordt een statisch bouwproces genoemd.
Wat is het verschil tussen DLL en LIB?
LIB-bibliotheken kunnen worden aangeroepen tijdens het compileren, maar DLL-bibliotheken kunnen alleen worden aangeroepen tijdens de runtime. LIB-bestanden zijn aanzienlijk groter dan DLL-bestanden. Een veel voorkomend probleem met DLL-bestanden is het probleem met versiebeheer. Dit gebeurt wanneer de code van de DLL wordt gewijzigd en de toepassing een verkeerde versie van een DLL gebruikt. Dit is geen probleem in verband met LIB-bestanden. In termen van herbruikbaarheid, bij het schrijven van nieuwe versies van systemen of volledig nieuwe applicaties, zijn DLL's altijd beter dan LIB's.