Verschil tussen DLL en LIB

Verschil tussen DLL en LIB
Verschil tussen DLL en LIB

Video: Verschil tussen DLL en LIB

Video: Verschil tussen DLL en LIB
Video: Truly UNIQUE Gin & Tonic | How to Make HOMEMADE Tonic Water 2024, November
Anonim

DLL versus LIB

Een bibliotheek is een verzameling bronnen die kunnen worden gebruikt om toepassingen 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 in de doeltoepassing worden geladen. Dienovereenkomstig zijn LIB-bestanden statisch gekoppelde bibliotheken en DLL-bestanden zijn dynamisch gekoppelde bibliotheken.

Wat is DLL?

Dynamic Link Library (beter bekend als DLL) is een implementatie van een gedeelde bibliotheek die is ontwikkeld door Microsoft. Het gebruikt de extensies.dll,.ocx of.drv en ze worden gebruikt in Microsoft Windows en OS/2-besturingssystemen..dll wordt gebruikt door de reguliere DLL-bestanden. En de.ocx-extensie wordt gebruikt door bibliotheken die ActiveX-besturingselementen bevatten en de.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 worden opgenomen in DLL-bestanden (net als in EXE-bestanden). In feite worden gegevensbestanden met het DLL-bestandsformaat resource-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 kenmerken, zoals alleen-lezen/beschrijfbaar en uitvoerbaar/niet-uitvoerbaar. Codesecties zijn uitvoerbaar, terwijl gegevenssecties niet uitvoerbaar zijn. De codesecties worden gedeeld en de gegevenssecties zijn privé. Dat betekent dat alle processen die de DLL gebruiken dezelfde kopie van de code zullen gebruiken, terwijl elk proces zijn eigen kopie van de gegevens zal hebben. 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 statisch bouwproces genoemd.

Wat is het verschil tussen DLL en LIB?

LIB-bibliotheken kunnen tijdens het compileren worden aangeroepen, maar DLL-bibliotheken kunnen alleen tijdens runtime worden aangeroepen. 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 zijn DLL's bij het schrijven van nieuwe versies van systemen of volledig nieuwe applicaties altijd beter dan LIB's.

Aanbevolen: