HyperV Hypervisor UserMode API Library
Internet Extensions for Win32
WinInet Migration Helper
WinInit Utility Extension DLL
Microsoft Active Directory Rights Management Services File API
Windows IPsec SPD Client DLL
Windows Bcp47 Language Database
WinLogon Deployment Library
Winlicense Dynamic Link Library
WinLogon Utility Extension DLL
WinMDE DLL
WMI
MCI API DLL
Base Multimedia Extension API DLL
Microsoft Active Directory Rights Management Services Client
Windows Office file format IRM Protector
Network Store Information RPC interface
Windows Setup BillBrd DLL
Windows Office file format IRM Protector
WinPixEventRuntime.dll
ESCAPE Windows 95 Player DLL
Windows Print Processor DLL
WinRing0
LDAP RnR Provider DLL
remtsvc
WSMan Shell API
winrssrv
Windows Diagnostics Tracing
Windows System Assessment Tool API
Microsoft Smart Card API
winsetup
Windows Setup UI
File Risk Estimation
Windows SKU Library
Winsock Network Diagnostic Helper Class
WinSparkle updater
Windows Spooler Driver
WINS RPC LIBRARY
MultiUser Windows Server DLL
Winstation Library
Streams DLL
Synchronization Framework
Windows Synchronization Metadata Store
Windows Synchronization Provider Framework
Wintab32.dll
Microsoft Trust Verification APIs
Windows Base Types DLL
Kiedy pojawia się okno błędu systemu informujące o braku pliku DLL, pojawiają się następujące pytania: jaki jest jego cel?
Pliki DLL mają podstawowy cel, redukcję kodu i zwiększenie wydajności komputera. Plik DLL to biblioteka dynamiczna, która jest używana przez wszystkie aplikacje.
Na komputerze z systemem Windows mogą wystąpić błędy, które są związane z plikami DLL. Błędy te uniemożliwiają użytkownikowi uruchomienie wymaganych przez niego programów. Na ekranie zaczynają pojawiać się komunikaty o błędach, określające dokładnie, którego pliku .DLL brakuje. Problem można rozwiązać poprzez odnalezienie konkretnego pliku i umieszczenie go w katalogu systemowym.
Pliki DLL są uważane w większości operacji użytkowania za główny czynnik błędów podczas uruchamiania i działania systemu Windows. Plik DLL nie musi być edytowany, ponieważ może powodować nowe problemy, które będą miały wpływ na wiele programów z innymi plikami DLL.
Kody w DLL są uważane za współdzielone przez procesy, które potrzebują DLL (pliki znajdują się w pamięci fizycznej).
Starsze wersje Windows, w których każdy uruchomiony proces miał jeden obszerny obszar zadań, wymagały jednej kopii kodu DLL.
Na przykład konkretne programy z załadowanej biblioteki DLL nie mają tych adresów w wolnej bazie. Wtedy należy wykonać kolejną kopię kodu DLL z bazą o unikalnym zestawie relokowalnych współczynników wejściowych. Jeśli trzeba przywrócić pamięć fizyczną, kod zajętej partycji jest resetowany wraz z zawartością i następuje szybkie przeładowanie z pliku DLL. Ponadto, GDI ładuje wszystkie inne sterowniki urządzeń, więc Windows zaczyna ładować resztę pakietów Windows, wywołując te programy API z USER/GDI.
Z tego powodu plik DLL przenosi wiele programów użytkowych naraz. Przy aktualizacji DLL do nowszej wersji, poprzednia wersja jest nadpisywana lub usuwana z komputera. ActiveX Controls, Control Panel Recordsdata i sterowniki urządzeń są podstawą danych dla Windows jako Dynamic Link Libraries.
Istnieje kilka sprawdzonych sposobów radzenia sobie z problemami z bibliotekami DLL:
Powiązane pliki wykonywalne mogą być załadowane wcześniej, jeśli uruchomisz je w podobnych ustawieniach, w jakich zostały skompilowane. Dodajmy, że każdy standardowy cel systemu Windows ma powiązane pliki DLL.
Świetną alternatywą dla wiązania importu ze środowiskiem docelowym jest uruchamianie z instalacją narzędziową. Jednak taki program zmienia wartość kontrolną pliku wykonywalnego. Późniejsze wersje Windows nie mają już adresu każdej załadowanej biblioteki, co prowadzi do znacznie mniejszego pliku wykonywalnego.
Wiele bibliotek dynamicznego linkowania ma w swoich plikach końcówkę .DLL, ale inne biblioteki używają .OCX, .CPL, .DRV. Pakiety definiujące, takie jak UPX, kompresują bibliotekę DLL, co prowadzi do problemu: sekcje kodu do odczytu i zapisu nie są oddzielone. Sekcje te przypominają niepubliczne partycje, ponieważ są prywatne w obrębie każdego procesu.
W rezultacie, biblioteki DLL z sekcjami publicznymi muszą być koniecznie nieskompresowane, gdy wiele pakietów używa ich jednocześnie. Każda instancja programu musi mieć jedną prywatną kopię biblioteki DLL.