Erinevus Assamblee Ja DLL-i Vahel

Erinevus Assamblee Ja DLL-i Vahel
Erinevus Assamblee Ja DLL-i Vahel

Video: Erinevus Assamblee Ja DLL-i Vahel

Video: Erinevus Assamblee Ja DLL-i Vahel
Video: DIRTY SECRETS of VIETNAM: The Helicopter Gunners 2024, Mai
Anonim

Assamblee vs DLL

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. DLL-failid on dünaamiliselt lingitud teegi failid. DLL töötas välja Microsoft. Kuid DLL-failidega seotud probleemide tõttu tuli Microsoft välja Assamblee failivorming (. NET-i raamistikuga). Assamblee failid on füüsiliselt väga sarnased DLL-idele, kuid neil on palju sisemisi erinevusi.

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. Ja laiendit.ocx kasutavad ActiveX-juhtelemente sisaldavad teegid ja.drv-laiendust kasutavad vanemad süsteemidraiveri failid. 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 assamblee?

Assambleefailid tutvustas Microsoft mitmete DLL-failidega seotud probleemide lahendamiseks. Assambleefailid tutvustati Microsofti. NET raamistikuga. Funktsionaalsuse käivitatavat loogilist üksust nimetatakse assambleeks. Assambleed saab käivitada. NET CLR (Common Language Runtime) all. Füüsiliselt on komplektid olemas EXE- või DLL-failidena. Kuid need erinevad sisemiselt Microsofti Win32 DLL-idest. Assamblee fail koosneb manifestist, metaandmetest, MISL-st (Microsofti keskkeele kood) ja muudest ressurssidest. Assamblee kirjeldab ennast ise. Manifest sisaldab sellist teavet nagu nimi, versioon, kultuur, tugev nimi, failide loend, tüübid ja sõltuvused. MISL-kood täidetakse CLR-i kaudu (seda ei saa otse käivitada).

Mis vahe on assamblee ja DLL-i vahel?

DLL on dünaamiliselt lingitud teek. Kuigi koosseisud on füüsiliselt võrdsed DLL-idega, on nad sisemiselt väga erinevad. DLL-ide komplekti vahel ei ole võimalik järjepidevust säilitada, kuid CLR suudab säilitada järjepidevust komplektide komplekti vahel, sest kooslused kirjeldavad ennast (need sisaldavad sõltuvuste loendit sisemiselt). Erinevalt DLL-idest sunnitakse versioonide versiooni kokkupanekutele (CLR). Komplektidega on võimalik kõrvuti juurutada (erinevad rakendused, kasutades erinevaid versioone).

Soovitatav: