Różnica między złożeniem a biblioteką DLL

Montaż a DLL

Biblioteka to zbiór zasobów, które można wykorzystać do tworzenia aplikacji. Biblioteka zwykle składa się z podprogramów, funkcji, klas, wartości i typów. Podczas procesu łączenia (zwykle wykonywanego przez linker), biblioteki i pliki wykonywalne nawiązują do siebie nawzajem. Pliki DLL to pliki bibliotek, które są dynamicznie połączone. DLL został opracowany przez Microsoft. Ale ze względu na pewne problemy związane z plikami DLL, Microsoft wymyślił format pliku asemblera (z .NET Framework). Pliki złożeń są fizycznie bardzo podobne do bibliotek DLL, ale mają wiele wewnętrznych różnic.

Co to jest DLL?

Dynamic Link Library (bardziej znana jako DLL) to implementacja biblioteki współdzielonej opracowana przez Microsoft. Wykorzystuje rozszerzenia .dll, .ocx lub .drv i są one używane w systemach operacyjnych Microsoft Windows i OS / 2… dll jest używany przez zwykłe pliki DLL. Rozszerzenie .ocx jest używane przez biblioteki zawierające formanty ActiveX, a rozszerzenie .drv jest używane przez starsze pliki sterowników systemu. Format pliku DLL jest taki sam jak plików EXE systemu Windows (przenośne pliki wykonywalne w 32-bitowym / 64-bitowym systemie Windows i nowy plik wykonywalny w 16-bitowym systemie Windows). Dlatego dowolna kombinacja kodu, danych i zasobów może być zawarta w plikach DLL (podobnie jak w plikach EXE). W rzeczywistości pliki danych w formacie pliku DLL nazywane są bibliotekami DLL zasobów. Biblioteki ikon (z rozszerzeniem .icl) i pliki czcionek (z rozszerzeniami .fon i .fot) to przykłady bibliotek DLL zasobów.

Składniki zwane sekcjami tworzą bibliotekę DLL, a każda sekcja ma swoje własne atrybuty, takie jak tylko do odczytu / zapisywalne i wykonywalne / niewykonywalne. Sekcje kodu są wykonywalne, podczas gdy sekcje danych nie są wykonywalne. Sekcje kodu są wspólne, a sekcje danych są prywatne. Oznacza to, że wszystkie procesy korzystające z biblioteki DLL będą używać tej samej kopii kodu, a każdy proces będzie miał własną kopię danych. Podstawową biblioteką dynamiczną dla systemu Windows jest kernel32.dll, który zawiera podstawowe funkcje (związane z plikami i pamięcią) w systemie Windows. COM (Component Object Model) to rozszerzenie DLL do OOP (Object Oriented Programming). Konwencjonalne biblioteki DLL są łatwiejsze w użyciu niż pliki COM.

Co to jest zgromadzenie?

Pliki zespołu zostały wprowadzone przez Microsoft w celu rozwiązania kilku problemów związanych z plikami DLL. Pliki zestawu zostały wprowadzone w środowisku Microsoft .NET. Wykonalna logiczna jednostka funkcjonalności nazywana jest zestawem. Zespoły można wykonywać w .NET CLR (Common Language Runtime). Fizycznie zestawy istnieją jako pliki EXE lub DLL. Jednak wewnętrznie różnią się one od bibliotek DLL Microsoft Win32. Plik zestawu składa się z manifestu, metadanych, MISL (kod języka Microsoft Intermediate Language) i innych zasobów. Zestaw jest samoopisujący. Manifest zawiera takie informacje, jak nazwa, wersja, kultura, imię i nazwisko, lista plików, typy i zależności. Kod MISL jest wykonywany przez CLR (nie można go wykonać bezpośrednio).

Jaka jest różnica między asemblerem a DLL?

DLL jest biblioteką dynamicznie połączoną. Chociaż zespoły są fizycznie równe bibliotekom DLL, różnią się wewnętrznie. Nie jest możliwe zachowanie spójności między zestawem bibliotek DLL, ale CLR może zachować spójność między zestawem zestawów, ponieważ zestawy są samoopisujące (zawierają wewnętrznie listę zależności). W przeciwieństwie do bibliotek DLL informacje o wersjach są wymuszane dla zestawów (przez CLR). Wdrożenie równoległe (różne aplikacje korzystające z różnych wersji) jest możliwe z zespołami.