Diferența Dintre Asamblare și DLL

Diferența Dintre Asamblare și DLL
Diferența Dintre Asamblare și DLL

Video: Diferența Dintre Asamblare și DLL

Video: Diferența Dintre Asamblare și DLL
Video: Cum alegi componentele unui PC, sa fie compatibile ?! 2024, Decembrie
Anonim

Asamblare vs DLL

O bibliotecă este o colecție de resurse care poate fi utilizată pentru a dezvolta aplicații. O bibliotecă este formată de obicei din subrutine, funcții, clase, valori și tipuri. În timpul procesului de conectare (de obicei realizat de un linker), bibliotecile și executabilele fac trimitere una la cealaltă. Fișierele DLL sunt fișierele bibliotecii care sunt conectate dinamic. DLL a fost dezvoltat de Microsoft. Dar, din cauza unor probleme prezente cu fișierele DLL, Microsoft a venit cu formatul de fișier Assembly (cu cadrul. NET). Fișierele de asamblare sunt foarte asemănătoare fizic cu DLL-urile, dar au multe diferențe interne.

Ce este DLL?

Dynamic Link Library (mai frecvent cunoscută sub numele de DLL) este o implementare de bibliotecă partajată dezvoltată de Microsoft. Folosește extensiile.dll,.ocx sau.drv și sunt utilizate în sistemele de operare Microsoft Windows și OS / 2..dll este utilizat de fișierele DLL obișnuite. Și extensia.ocx este utilizată de bibliotecile care conțin controale ActiveX, iar extensia.drv este utilizată de fișierele de driver de sistem vechi. Formatul de fișier DLL este același cu fișierele Windows EXE (fișiere executabile portabile pe Windows pe 32 de biți / 64 de biți și New Executable pe Windows pe 16 biți). Prin urmare, orice combinație de cod, date și resurse poate fi conținută în fișierele DLL (la fel ca în fișierele EXE). De fapt, fișierele de date cu formatul de fișier DLL sunt denumite DLL resurse. Bibliotecile de pictograme (cu extensia.icl) și fișierele de fonturi (cu extensiile.fon și.fot) sunt exemple de DLL-uri de resurse.

Componentele numite secțiuni alcătuiesc un DLL și fiecare secțiune are propriile sale atribute, cum ar fi numai în citire / scriere și executabil / neexecutabil. Secțiunile de cod sunt executabile, în timp ce secțiunile de date sunt neexecutabile. Secțiunile de cod sunt partajate, iar secțiunile de date sunt private. Asta înseamnă că toate procesele care utilizează DLL vor folosi aceeași copie a codului, în timp ce fiecare proces va avea propria copie a datelor. Biblioteca dinamică principală pentru Windows este kernel32.dll, care conține funcțiile de bază (funcționalitate legată de fișier și memorie) pe Windows. COM (Component Object Model) este extensia DLL la OOP (Object Oriented Programming). DLL-urile convenționale sunt mai ușor de utilizat decât fișierele COM.

Ce este o Adunare?

Fișierele de asamblare au fost introduse de Microsoft pentru a rezolva mai multe probleme prezente cu fișierele DLL. Fișierele de asamblare au fost introduse cu cadrul Microsoft. NET. O unitate logică executabilă de funcționalitate se numește Asamblare. Asamblările sunt executabile în. NET CLR (Common Language Runtime). Fizic, ansamblurile există ca fișiere EXE sau DLL. Dar, acestea sunt foarte diferite de DLL-urile Microsoft Win32, pe plan intern. Un fișier de asamblare este alcătuit dintr-un manifest, metadate, MISL (cod Microsoft Intermediate Language) și alte resurse. Un ansamblu se autodescrie. Manifestul conține informații precum nume, versiune, cultură, nume puternic, listă de fișiere, tipuri și dependențe. Codul MISL este executat prin CLR (nu poate fi executat direct).

Care este diferența dintre Assembly și DLL?

DLL este o bibliotecă legată dinamic. Deși, ansamblurile sunt egale din punct de vedere fizic cu DLL-urile, acestea sunt foarte diferite pe plan intern. Nu este posibil să se mențină coerența între un set de DLL-uri, dar CLR poate menține coerența între un set de ansambluri, deoarece ansamblurile se autodescriu (ele conțin lista dependențelor pe plan intern). Spre deosebire de DLL-uri, informațiile de versiune sunt aplicate pentru ansambluri (de către CLR). Implementarea alăturată (diferite aplicații care utilizează versiuni diferite) este posibilă cu ansamblurile.

Recomandat: