Rozdiel medzi zostavou a knižnicou DLL

Rozdiel medzi zostavou a knižnicou DLL
Rozdiel medzi zostavou a knižnicou DLL

Video: Rozdiel medzi zostavou a knižnicou DLL

Video: Rozdiel medzi zostavou a knižnicou DLL
Video: самый быстрый поезд в Японии со скоростью 320 км/ч | Скоростной поезд Хаябуса 2024, November
Anonim

Zostavenie vs DLL

Knižnica je zbierka zdrojov, ktoré možno použiť na vývoj aplikácií. Knižnica sa zvyčajne skladá z podprogramov, funkcií, tried, hodnôt a typov. Počas procesu spájania (zvyčajne to robí linker) knižnice a spustiteľné súbory na seba odkazujú. Súbory DLL sú súbory knižníc, ktoré sú dynamicky prepojené. DLL bola vyvinutá spoločnosťou Microsoft. Ale kvôli niektorým problémom so súbormi DLL prišiel Microsoft s formátom súboru Assembly (s rámcom. NET). Súbory zostavy sú fyzicky veľmi podobné knižniciam DLL, ale majú veľa vnútorných rozdielov.

Čo je knižnica DLL?

Dynamic Link Library (bežnejšie známa ako DLL) je implementácia zdieľanej knižnice vyvinutá spoločnosťou Microsoft. Používa prípony.dll,.ocx alebo.drv a používajú sa v operačných systémoch Microsoft Windows a OS/2..dll používajú bežné súbory DLL. A príponu.ocx používajú knižnice, ktoré obsahujú ovládacie prvky ActiveX a príponu.drv používajú staršie súbory systémových ovládačov. Formát súboru DLL je rovnaký ako pri súboroch Windows EXE (prenosné spustiteľné súbory v 32-bitovom/64-bitovom systéme Windows a New Executable v 16-bitovom systéme Windows). Preto môže byť v súboroch DLL obsiahnutá akákoľvek kombinácia kódu, údajov a zdrojov (rovnako ako v súboroch EXE). Dátové súbory vo formáte súboru DLL sa v skutočnosti nazývajú zdrojové DLL. Knižnice ikon (s príponou.icl) a súbory písiem (s príponami.fon a.fot) sú príkladmi zdrojových knižníc DLL.

Komponenty nazývané sekcie tvoria knižnicu DLL a každá sekcia má svoje vlastné atribúty, ako sú len na čítanie/zapisovateľné a spustiteľné/nespustiteľné. Sekcie kódu sú spustiteľné, zatiaľ čo dátové sekcie nie sú spustiteľné. Sekcie kódu sú zdieľané a sekcie údajov sú súkromné. To znamená, že všetky procesy používajúce knižnicu DLL budú používať rovnakú kópiu kódu, pričom každý proces bude mať svoju vlastnú kópiu údajov. Primárna dynamická knižnica pre Windows je kernel32.dll, ktorá obsahuje základné funkcie (funkcie súvisiace so súbormi a pamäťou) v systéme Windows. COM (Component Object Model) je rozšírenie knižnice DLL na OOP (Object Oriented Programming). Bežné knižnice DLL sa používajú jednoduchšie ako súbory COM.

Čo je to zhromaždenie?

Súbory zostavy zaviedla spoločnosť Microsoft s cieľom vyriešiť niekoľko problémov, ktoré sa vyskytujú pri súboroch DLL. Súbory zostavy boli zavedené s rámcom Microsoft. NET. Spustiteľná logická jednotka funkčnosti sa nazýva zostava. Zostavy sú spustiteľné pod. NET CLR (Common Language Runtime). Fyzicky, zostavy existujú ako súbory EXE alebo DLL. Interne sa však veľmi líšia od Microsoft Win32 DLL. Súbor zostavy sa skladá z manifestu, metadát, MISL (kód Microsoft Intermediate Language) a iných zdrojov. Zostava sa sama opisuje. Manifest obsahuje informácie, ako je názov, verzia, kultúra, silný názov, zoznam súborov, typy a závislosti. MISL kód sa vykonáva prostredníctvom CLR (nie je možné ho spustiť priamo).

Aký je rozdiel medzi zostavou a knižnicou DLL?

DLL je dynamicky prepojená knižnica. Hoci sú zostavy fyzicky rovnaké ako knižnice DLL, vnútorne sú veľmi odlišné. Nie je možné zachovať konzistenciu medzi množinou knižníc DLL, ale CLR môže zachovať konzistenciu medzi množinou zostáv, pretože zostavy sa popisujú samé (interne obsahujú zoznam závislostí). Na rozdiel od knižníc DLL sú informácie o verziách vynucované pre zostavy (pomocou CLR). So zostavami je možné nasadenie vedľa seba (rôzne aplikácie používajúce rôzne verzie).

Odporúča: