Verschil tussen DLL en LIB

DLL vs 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 zijn onderverdeeld in statische en dynamische bibliotheken, afhankelijk van het tijdstip waarop de subroutines naar de doeltoepassing worden geladen. Dienovereenkomstig zijn LIB-bestanden statisch verbonden bibliotheken en DLL-bestanden zijn dynamisch verbonden bibliotheken.

Wat is DLL?

Dynamic Link Library (beter bekend als DLL) is een gedeelde bibliotheekimplementatie ontwikkeld door Microsoft. Het gebruikt 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-bits / 64-bits Windows en New Executable op 16-bits Windows). Daarom kan elke combinatie van code, gegevens en bronnen zich in DLL-bestanden bevinden (net als in EXE-bestanden). Feitelijk worden databestanden met het DLL-bestandsformaat resource DLL's genoemd. Pictogrambibliotheken (met extensie .icl) en lettertypebestanden (met .fon- en .fot-extensies) zijn voorbeelden van resource-DLL's.

Componenten met de naam secties vormen een DLL en elke sectie heeft zijn eigen kenmerken, zoals alleen-lezen / beschrijfbaar en uitvoerbaar / niet-uitvoerbaar. Code secties zijn uitvoerbaar, terwijl datasecties niet uitvoerbaar zijn. De codegedeelten worden gedeeld en gegevenssecties zijn privé. Dat betekent dat alle processen die gebruikmaken van de DLL dezelfde kopie van de code gebruiken, terwijl elk proces een 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 (in tegenstelling tot runtime) opgelost. De code wordt daadwerkelijk gekopieerd naar de doeltoepassing. Een compiler, linker of een binder doet deze resolutie en produceert een objectbestand en een uitvoerbaar bestand. Dit proces wordt het statische bouwproces genoemd.

Wat is het verschil tussen DLL en LIB?

LIB-bibliotheken kunnen tijdens het compileren worden aangeroepen, maar DLL-bibliotheken kunnen alleen tijdens de uitvoering worden opgeroepen. LIB-bestanden zijn aanzienlijk groter dan DLL-bestanden. Een veel voorkomend probleem met DLL-bestanden is het versieprobleem. 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.