Razlika između Assembly i DLL-a

Razlika između Assembly i DLL-a
Razlika između Assembly i DLL-a

Video: Razlika između Assembly i DLL-a

Video: Razlika između Assembly i DLL-a
Video: 📼 DLL - Динамически загружаемые библиотеки (Win32 API). Программирование в ОС Windows. Лекция 3. 2024, Juli
Anonim

Sastavljanje vs DLL

Biblioteka je zbirka resursa koji se mogu koristiti za razvoj aplikacija. Biblioteka se obično sastoji od potprograma, funkcija, klasa, vrijednosti i tipova. Tokom procesa povezivanja (koji obično radi povezivač), biblioteke i izvršni fajlovi upućuju jedni na druge. DLL datoteke su datoteke biblioteke koje su dinamički povezane. DLL je razvio Microsoft. Ali zbog nekih problema prisutnih sa DLL datotekama, Microsoft je došao do formata datoteke Assembly (sa. NET framework-om). Datoteke za sklapanje su fizički veoma slične DLL-ovima, ali imaju mnogo internih razlika.

Šta je DLL?

Dynamic Link Library (poznatija kao DLL) je implementacija zajedničke biblioteke koju je razvio Microsoft. Koristi.dll,.ocx ili.drv ekstenzije i koriste se u Microsoft Windows i OS/2 operativnim sistemima..dll koriste obične DLL datoteke. I.ocx ekstenziju koriste biblioteke koje sadrže ActiveX kontrole, a ekstenziju.drv koriste datoteke zastarjelih sistemskih drajvera. Format DLL datoteke je isti kao i Windows EXE datoteke (prenosne izvršne datoteke na 32-bitnom/64-bitnom Windowsu i nove izvršne datoteke na 16-bitnom Windowsu). Stoga, bilo koja kombinacija koda, podataka i resursa može biti sadržana u DLL datotekama (baš kao u EXE datotekama). Zapravo, datoteke sa podacima u DLL formatu nazivaju se DLL-ovi resursa. Biblioteke ikona (sa ekstenzijom.icl) i datoteke fontova (sa ekstenzijama.fon i.fot) su primjeri DLL-ova resursa.

Komponente koje se nazivaju sekcije čine DLL i svaka sekcija ima svoje atribute kao što su samo za čitanje/upisivanje i izvršno/neizvršno. Sekcije koda su izvršne, dok sekcije podataka nisu izvršne. Odjeljci koda su zajednički, a podaci su privatni. To znači da će svi procesi koji koriste DLL koristiti istu kopiju koda, dok će svaki proces imati svoju kopiju podataka. Primarna dinamička biblioteka za Windows je kernel32.dll, koja sadrži osnovne funkcije (funkcije vezane za datoteke i memoriju) u Windowsu. COM (Component Object Model) je proširenje DLL-a na OOP (Object Oriented Programming). Konvencionalne DLL datoteke su lakše za korištenje od COM fajlova.

Šta je skupština?

Datoteke za montažu je uveo Microsoft kako bi riješio nekoliko problema prisutnih sa DLL datotekama. Asemblerski fajlovi su predstavljeni sa Microsoft. NET framework-om. Izvršna logička jedinica funkcionalnosti naziva se sklop. Sklopovi su izvršni pod. NET CLR (Common Language Runtime). Fizički, sklopovi postoje kao EXE ili DLL datoteke. Ali, interno se veoma razlikuju od Microsoft Win32 DLL-ova. Datoteka sklopa se sastoji od manifesta, metapodataka, MISL-a (Microsoft Intermediate Language code) i drugih resursa. Sklop se sam opisuje. Manifest sadrži informacije kao što su ime, verzija, kultura, jako ime, lista datoteka, tipovi i zavisnosti. MISL kod se izvršava kroz CLR (ne može se direktno izvršiti).

Koja je razlika između Assembly i DLL-a?

DLL je dinamički povezana biblioteka. Iako su sklopovi fizički jednaki DLL-ovima, oni su interno veoma različiti. Nije moguće održavati konzistentnost između skupa DLL-ova, ali CLR može održavati konzistentnost između skupa sklopova, jer su sklopovi samoopisujući (sadrže interno listu zavisnosti). Za razliku od DLL-ova, informacije o verzioniranju su nametnute za sklopove (od strane CLR-a). Side-by-side implementacija (različite aplikacije koje koriste različite verzije) moguća je sa sklopovima.

Preporučuje se: