Assembly ja DLL-i erinevus

Assembly ja DLL-i erinevus
Assembly ja DLL-i erinevus

Video: Assembly ja DLL-i erinevus

Video: Assembly ja DLL-i erinevus
Video: Minimaailm 2019. Mudelrongid ja -raudteed teise näitusepäeva lõpul, 2024, November
Anonim

Assamblee vs DLL

Teek on ressursside kogum, mida saab kasutada rakenduste arendamiseks. Teek koosneb tavaliselt alamprogrammidest, funktsioonidest, klassidest, väärtustest ja tüüpidest. Linkimisprotsessi ajal (tavaliselt seda teeb linker) viitavad teegid ja käivitatavad failid üksteisele. DLL-failid on teegifailid, mis on dünaamiliselt lingitud. DLL-i töötas välja Microsoft. Kuid mõningate DLL-failidega seotud probleemide tõttu tuli Microsoft välja Assembly failivorminguga (koos. NET-raamistikuga). Koostefailid on füüsiliselt DLL-idega väga sarnased, kuid neil on palju sisemisi erinevusi.

Mis on DLL?

Dünaamilise lingi teek (rohkem tuntud kui DLL) on Microsofti välja töötatud jagatud teegi rakendus. See kasutab laiendusi.dll,.ocx või.drv ning neid kasutatakse operatsioonisüsteemides Microsoft Windows ja OS/2..dll-i kasutavad tavalised DLL-failid. Ja.ocx-laiendit kasutavad teegid, mis sisaldavad ActiveX-juhtelemente, ja.drv-laiendit kasutavad pärandsüsteemi draiverifailid. DLL-failivorming on sama, mis Windowsi EXE-failidel (32-bitises/64-bitises Windowsis kaasaskantavad käivitatavad failid ja 16-bitises Windowsis New Executable). Seetõttu võib DLL-failides sisalduda mis tahes koodi, andmete ja ressursside kombinatsioon (nagu EXE-failides). Tegelikult nimetatakse DLL-vormingus andmefaile ressursi-DLL-ideks. Ressursi DLL-ide näited on ikooniteegid (laiendiga.icl) ja fondifailid (laienditega.fon ja.fot).

Sektsioonideks nimetatud komponendid moodustavad DLL-i ja igal jaotisel on oma atribuudid, nagu kirjutuskaitstud/kirjutatav ja käivitatav/mittekäivitatav. Koodilõigud on käivitatavad, samas kui andmeosad pole käivitatavad. Koodijaotised on jagatud ja andmejaotised 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 funktsioone). COM (Component Object Model) on DLL-i laiendus OOP-le (Object Oriented Programming). Tavalisi DLL-e on lihtsam kasutada kui COM-faile.

Mis on assamblee?

Microsoft tutvustas koostefaile, et lahendada mitmeid DLL-failidega seotud probleeme. Koostefaile tutvustati Microsoft. NET raamistikuga. Funktsionaalsuse käivitatavat loogilist ühikut nimetatakse assambleeks. Assambleed on käivitatavad. NET CLR-i (Common Language Runtime) all. Füüsiliselt eksisteerivad komplektid EXE- või DLL-failidena. Kuid need on sisemiselt väga erinevad Microsoft Win32 DLL-idest. Koostefail koosneb manifestist, metaandmetest, MISL-ist (Microsoft Intermediate Language Code) ja muudest ressurssidest. Koost kirjeldab ennast ise. Manifest sisaldab sellist teavet nagu nimi, versioon, kultuur, tugev nimi, faililoend, tüübid ja sõltuvused. MISL-kood käivitatakse CLR-i kaudu (seda ei saa otse käivitada).

Mis vahe on Assembly ja DLL vahel?

DLL on dünaamiliselt lingitud teek. Kuigi koostud on füüsiliselt võrdsed DLL-idega, on need sisemiselt väga erinevad. DLL-ide komplekti vahel ei ole võimalik järjepidevust säilitada, kuid CLR suudab säilitada koostu kogumi vahel, kuna sõlmed kirjeldavad ennast (need sisaldavad sisemiselt sõltuvuste loendit). Erinev alt DLL-idest jõustatakse komplektide jaoks versiooniteave (CLR). Koostudega on võimalik kõrvuti juurutamine (erinevad rakendused, mis kasutavad erinevaid versioone).

Soovitan: