Rozszerzenia pliku |
.dll |
---|---|
Typ MIME |
|
Producent |
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 jest samodzielnym programem.
Korzyści z użycia bibliotek DLL są następujące[2]:
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[3]. Ten drugi sposób pozwala wykorzystać biblioteki DLL w różnych programach jako wtyczki.
W systemie Microsoft Windows biblioteki DLL mają rozszerzenia .dll
, .ocx
(gdy biblioteka jest kontrolką ActiveX), .cpl
(gdy biblioteka jest rozszerzeniem Panelu Sterowania), .drv
(gdy jest przestarzałym sterownikiem) i mogą być wykorzystane w programach napisanych w różnych językach przeznaczonych na platformę Windows, m.in. w Visual Basicu, C/C++/C#, Object Pascalu (Delphi) czy asemblerze.