Verschil tussen DLL en LIB

Anonim

DLL vs LIB

Een bibliotheek is een verzameling middelen die gebruikt kunnen worden om applicaties te ontwikkelen. Een bibliotheek bestaat meestal uit subroutines, functies, klassen, waarden en typen. Tijdens het koppelproces (meestal gedaan door een linker) verwijzen bibliotheken en executables naar elkaar. Bibliotheekbestanden worden verdeeld in statische en dynamische bibliotheken, afhankelijk van de tijd waarop de subroutines aan de doeltoepassing worden geladen. Bijgevolg zijn LIB-bestanden statisch gekoppelde bibliotheken en DLL-bestanden zijn dynamisch gekoppelde bibliotheken.

Wat is DLL?

Dynamische Link Library (meer algemeen bekend als DLL) is een gedeelde bibliotheek implementatie 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 elders systeem driver bestanden. 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-bestandsindeling bron DLL's genoemd. Pictogrambibliotheken (met. Icl-extensie) en lettertypebestanden (met.fon en.fot extensions) zijn voorbeelden van resource DLLs.

Componenten die secties hebben genoemd, vormen een DLL en elke sectie heeft zijn eigen attributen, zoals alleen-lezen / schrijfbaar en uitvoerbaar / niet-uitvoerbaar. Code secties zijn uitvoerbaar, terwijl gegevens secties niet uitvoerbaar zijn. De code secties worden gedeeld en gegevens secties zijn privé. Dat betekent dat alle processen die de DLL gebruiken, 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 bevat (bestand en geheugen gerelateerde functionaliteit) op Windows. COM (Component Object Model) is de uitbreiding van DLL naar OOP (Object Oriented Programming). Conventionele DLL's zijn makkelijker 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 opgelost op compileertijd (in tegenstelling tot run-time). De code wordt eigenlijk in de doeltoepassing gekopieerd. Een compiler, linker of een bindmiddel zal deze resolutie doen en een objectbestand en een uitvoerbaar bestand produceren. Dit proces heet statisch bouwproces.

Wat is het verschil tussen DLL en LIB?

LIB-bibliotheken kunnen tijdens de compileringstijd worden gebeld, maar DLL-bibliotheken kunnen alleen tijdens de run-time worden gebeld.LIB-bestanden zijn aanzienlijk groter dan DLL-bestanden. Een zeer veel voorkomend probleem met DLL-bestanden is het versieprobleem. Dit gebeurt wanneer de code van de DLL is gewijzigd en de toepassing maakt gebruik van een verkeerde versie van een DLL. Dit is geen probleem in verband met LIB-bestanden. Wat betreft herbruikbaarheid, bij het schrijven van nieuwe versies van systemen of volledig nieuwe applicaties, zijn DLLs altijd beter dan LIB's.