Erinevus DLL ja LIB vahel

DLL vs LIB

Raamatukogu on ressursside kogum, mida saab kasutada rakenduste arendamiseks. Raamatukogu koosneb tavaliselt alamprogrammidest, funktsioonidest, klassidest, väärtustest ja tüüpidest. Lingimisprotsessi ajal (mida tavaliselt teeb linker) viitavad teegid ja käivitatavad failid üksteisele. Teekifailid jaotatakse staatilisteks ja dünaamilisteks teekideks sõltuvalt alamprogrammide sihtrakendusse laadimise ajast. Vastavalt on LIB-failid staatiliselt lingitud raamatukogud ja DLL-failid on dünaamiliselt lingitud raamatukogud.

Mis on DLL?

Dünaamiliste linkide kogu (üldisemalt tuntud kui DLL) on Microsofti välja töötatud ühiskasutatava raamatukogu teostus. See kasutab laiendusi .dll, .ocx või .drv ning neid kasutatakse Microsoft Windows ja OS / 2 opsüsteemides ... dll on tavaliste DLL-failide jaoks. Ja .ocx-laiendit kasutavad teegid, mis sisaldavad ActiveX-i juhtelemente ja .drv-laiendit kasutavad pärandsüsteemi draiverifailid. DLL-failivorming on sama mis Windows EXE-failidega (32-bitise / 64-bitise Windowsi kaasaskantavad täitmisfailid ja 16-bitises Windowsis uus käivitatavad failid). Seetõttu võivad kõik failide, koodide ja andmete kombinatsioonid sisalduda DLL-failides (nagu ka EXE-failides). Tegelikult nimetatakse DLL-vormingus 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 nagu kirjutuskaitstud / kirjutatav ja käivitatav / mitte käivitatav. Koodilõigud on käivitatavad, samas kui andmejaotised pole käivitatavad. Koodilõigud on jagatud ja andmejaod on privaatsed. See tähendab, et kõik DLL-i kasutavad protsessid kasutavad sama koodi koopiat, samal ajal kui igal protsessil on oma andmete koopia. Esmane Windowsi dünaamiline teek on kernel32.dll, mis sisaldab Windowsi põhifunktsioone (faili ja mäluga seotud funktsioonid). COM (Component Object Model) on DLL-i laiendamine OOP-le (objektorienteeritud programmeerimine). Tavalisi DLL-e on lihtsam kasutada kui COM-faile.

Mis on LIB?

LIB-failid on staatilised raamatukogud (tuntud ka kui staatiliselt seotud raamatukogud). LIB-failid sisaldavad alamprogrammide, väliste funktsioonide ja muutujate kogu. LIB-failid lahendatakse kompileerimise ajal (erinevalt tööajast). Kood kopeeritakse tegelikult sihtrakendusse. Kompilaator, linker või köitja teeb selle eraldusvõime ja loob objektifaili ja käivitatava faili. Seda protsessi nimetatakse staatiliseks ehitamisprotsessiks.

Mis vahe on DLL ja LIB vahel??

LIB-teegid saab helistada kompileerimise ajal, kuid DLL-teegid saab helistada ainult töö ajal. LIB-failid on märkimisväärselt suuremad kui DLL-failid. Väga levinud probleem DLL-failidega on versioonimise probleem. See juhtub siis, kui DLL-i 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-id.