DLL
DLL (z ang. Dynamic-Link Library – biblioteka łączona dynamicznie) – biblioteka współdzielona (z ang. shared library) w środowisku Microsoft Windows, przechowująca implementacje różnych podprogramów programu lub zasoby programu[1]. Podprogramy i zasoby zawarte w bibliotece DLL mogą być wykorzystane bezpośrednio lub pośrednio (za pośrednictwem innej biblioteki DLL) przez dowolny plik wykonywalny, sama biblioteka DLL nie może być uruchomiona bezpośrednio, ponieważ nie zawiera klasycznego punktu wejścia do aplikacji. W momencie wczytania biblioteki jest wywoływana funkcja DllMain[2]. Windows udostępnia narzędzie pozwalające na wywołanie wyeksportowanych funkcji z biblioteki - rundll32[3]. Korzyści z użycia bibliotek DLL są następujące[4]:
Funkcje biblioteki dynamicznej (DLL) mogą być jednocześnie (w tym samym czasie) importowane przez wiele programów (stąd określenie: biblioteka współdzielona). W przeciwieństwie do bibliotek statycznych, które są łączone z programem w czasie jego konsolidowania, biblioteki DLL importowane dynamicznie są oddzielnym fragmentem programu i ich modyfikacja nie wymaga przeprowadzenia ponownej konsolidacji programów. Z drugiej strony, gdyby wystąpił problem z biblioteką (w postaci braku pliku biblioteki, braku importowanych funkcji lub problemu z wczytywaniem biblioteki), całkowicie uniemożliwia to uruchomienie programu. Biblioteki DLL mogą być obecne w pamięci operacyjnej podczas całego cyklu życia programu (taki tryb nazywa się z ang. run-time dynamic linking) lub załadowane na żądanie w określonym momencie działania programu (load-time dynamic linking). Drugi tryb wymaga bardziej zaawansowanej obsługi ze strony programisty, lecz pozwala lepiej zarządzać zasobami w systemie: załadować bibliotekę, gdy faktycznie jest potrzebna i odłączyć bibliotekę, gdy nie jest już potrzebna[5]. Ten drugi sposób pozwala wykorzystać biblioteki DLL w różnych programach jako wtyczki. W systemie Microsoft Windows biblioteki DLL mają rozszerzenia Przypisy
Linki zewnętrzne
|