Erinevus DLL-i Ja LIB Vahel

Erinevus DLL-i Ja LIB Vahel
Erinevus DLL-i Ja LIB Vahel

Video: Erinevus DLL-i Ja LIB Vahel

Video: Erinevus DLL-i Ja LIB Vahel
Video: RxJS Примеры. Работа с API GitHub 2024, Aprill
Anonim

DLL vs LIB

Raamatukogu on ressursside kogu, mida saab kasutada rakenduste arendamiseks. Raamatukogu koosneb tavaliselt alamprogrammidest, funktsioonidest, klassidest, väärtustest ja tüüpidest. Linkimisprotsessi ajal (mida tavaliselt teeb linker) viitavad teegid ja käivitatavad failid üksteisele. Teegifailid jagunevad staatilisteks ja dünaamilisteks teekideks sõltuvalt ajast, millal alamprogrammid sihtrakendusse laaditakse. Seega on LIB-failid staatiliselt lingitud ja DLL-failid dünaamiliselt lingitud teegid.

Mis on DLL?

Dünaamiliste linkide kogu (sagedamini tuntud kui DLL) on Microsofti välja töötatud jagatud teegi rakendus. See kasutab laiendeid.dll,.ocx või.drv ning neid kasutatakse Microsoft Windowsi ja OS / 2 operatsioonisüsteemides..dll-d kasutavad tavalised DLL-failid. Laiendust.ocx kasutavad ActiveX-juhtelemente sisaldavad teegid ja pärandsüsteemi draiverifailides.drv-laiendust. DLL-failivorming on sama kui Windows EXE-failid (Portable Executable -failid 32-bitises / 64-bitises Windowsis ja New Executable 16-bitises Windowsis). Seetõttu võib DLL-failides sisaldada mis tahes koodi, andmete ja ressursside kombinatsioone (nagu ka EXE-failides). Tegelikult nimetatakse DLL-failivorminguga andmefaile ressursside DLL-ideks. Ikooniteegid (laiendiga.icl) ja fondifailid (laienditega.fon ja.fot) on ressursside DLL-ide näited.

Komponendid, mida nimetatakse sektsioonideks, moodustavad DLL-i ja igal sektsioonil on oma atribuudid, näiteks kirjutuskaitstud / kirjutatav ja käivitatav / mittetoimiv. Koodilõigud on käivitatavad, samas kui andmesektsioonid pole käivitatavad. Koodilõigud on jagatud ja andmesektsioonid on privaatsed. See tähendab, et kõik DLL-i kasutavad protsessid kasutavad sama koodi koopiat, samas kui igal protsessil on oma andmete koopia. Windowsi peamine dünaamiline teek on kernel32.dll, mis sisaldab Windowsi põhifunktsioone (failide ja mäluga seotud funktsionaalsust). COM (Component Object Model) on DLL-i laiendus OOP-le (Object Oriented Programming). Tavapäraseid DLL-faile on lihtsam kasutada kui COM-faile.

Mis on LIB?

LIB-failid on staatilised teegid (tuntud ka kui staatiliselt lingitud teegid). LIB-failid sisaldavad alamprogrammide, väliste funktsioonide ja muutujate kogu. LIB-failid lahendatakse kompileerimise ajal (erinevalt käitamisajast). Kood kopeeritakse tegelikult sihtrakendusse. Selle lahenduse teeb kompilaator, linker või sideaine, mis loob objektifaili ja käivitatava faili. Seda protsessi nimetatakse staatiliseks ehitamise protsessiks.

Mis vahe on DLL-il ja LIB-l?

LIB teeke saab helistada kompileerimise ajal, kuid DLL-i teeke saab helistada ainult tööaja jooksul. LIB-failid on oluliselt suuremad kui DLL-failid. Väga levinud probleem DLL-failidega on versioonide probleem. See juhtub siis, kui DLL-koodi muudetakse ja rakendus kasutab DLL-i vale versiooni. See ei ole LIB-failidega seotud probleem. Korduvkasutatavuse mõttes on süsteemide uute versioonide või täiesti uute rakenduste kirjutamisel DLL-id alati paremad kui LIB-d.

Soovitatav: