DLL vs LIB
Biblioteka to zbiór zasobów, których można używać do tworzenia aplikacji. Biblioteka zwykle składa się z podprogramów, funkcji, klas, wartości i typów. Podczas procesu łączenia (zwykle wykonywany przez konsolidator) biblioteki i pliki wykonywalne odwołują się do siebie. Pliki bibliotek są podzielone na biblioteki statyczne i dynamiczne w zależności od czasu, w którym podprogramy są ładowane do aplikacji docelowej. W związku z tym pliki LIB są bibliotekami połączonymi statycznie, a pliki DLL są bibliotekami połączonymi dynamicznie.
Co to jest DLL?
Dynamic Link Library (bardziej znana jako DLL) to implementacja biblioteki współdzielonej opracowana przez firmę 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 systemowych. Format pliku DLL jest taki sam, jak plików Windows EXE (pliki Portable Executable w 32-bitowym / 64-bitowym systemie Windows i New Executable 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 DLL nazywane są bibliotekami DLL zasobów. Biblioteki ikon (z rozszerzeniem.icl) i pliki czcionek (z rozszerzeniami.fon i.fot) są przykładami bibliotek DLL zasobów.
Składniki zwane sekcjami tworzą bibliotekę DLL, a każda sekcja ma własne atrybuty, takie jak tylko do odczytu / zapisywalny i wykonywalny / niewykonalny. Sekcje kodu są wykonywalne, podczas gdy sekcje danych nie są wykonywalne. Sekcje kodu są udostępniane, 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óra zawiera podstawowe funkcje (funkcje związane z plikami i pamięcią) w systemie Windows. COM (Component Object Model) jest rozszerzeniem DLL do OOP (programowanie obiektowe). Konwencjonalne biblioteki DLL są łatwiejsze w użyciu niż pliki COM.
Co to jest LIB?
Pliki LIB to biblioteki statyczne (znane również jako biblioteki połączone statycznie). Pliki LIB zawierają zbiór podprogramów, funkcji zewnętrznych i zmiennych. Pliki LIB są rozwiązywane w czasie kompilacji (w przeciwieństwie do czasu wykonywania). Kod jest faktycznie kopiowany do aplikacji docelowej. Kompilator, konsolidator lub segregator wykona to rozwiązanie i utworzy plik obiektowy i plik wykonywalny. Ten proces nazywa się statycznym procesem budowania.
Jaka jest różnica między bibliotekami DLL i LIB?
Biblioteki LIB można wywoływać w czasie kompilacji, ale biblioteki DLL można wywoływać tylko w czasie wykonywania. Pliki LIB są znacznie większe niż pliki DLL. Bardzo częstym problemem związanym z plikami DLL jest problem z wersjami. Dzieje się tak, gdy kod biblioteki DLL zostanie zmieniony, a aplikacja używa niewłaściwej wersji biblioteki DLL. Nie jest to problem związany z plikami LIB. Jeśli chodzi o możliwość ponownego wykorzystania, podczas pisania nowych wersji systemów lub zupełnie nowych aplikacji biblioteki DLL są zawsze lepsze niż biblioteki LIB.