| Termin | Definicja |
|---|---|
| STATUS_DLL_NOT_FOUND | STATUS_DLL_NOT_FOUND to kod błędu wskazujący na brak wymaganej biblioteki DLL w ścieżkach wyszukiwania systemu. Co oznacza kod STATUS_DLL_NOT_FOUNDSTATUS_DLL_NOT_FOUND jest kodem statusu systemu Windows oznaczającym, że moduł wykonywalny nie może zostać załadowany, ponieważ wymagana biblioteka DLL nie została znaleziona w lokalizacjach przeszukiwanych przez mechanizm ładowania systemu. Wartość tego statusu to 0xC0000135. DLL, czyli biblioteka dołączana dynamicznie, zawiera kod lub dane wykorzystywane przez program albo przez inną bibliotekę. Program może więc zakończyć się jeszcze przed wyświetleniem głównego okna, jeśli jedna z jego zależności nie zostanie odnaleziona. Komunikat nie zawsze oznacza, że brakuje biblioteki bezpośrednio wskazanej przez plik EXE. Ładowanie odbywa się hierarchicznie: program może wymagać biblioteki A, biblioteka A może wymagać biblioteki B, a dopiero biblioteka B może być faktycznie nieobecna. Z tego powodu sama nazwa DLL pokazana w komunikacie nie zawsze wystarcza do ustalenia przyczyny. Podobny efekt może wystąpić po usunięciu pliku, niepełnej aktualizacji, błędnej deinstalacji programu albo przeniesieniu pliku wykonywalnego bez dołączonych bibliotek. Jak Windows wyszukuje wymaganą bibliotekęSystem Windows korzysta z ustalonego mechanizmu wyszukiwania bibliotek, którego szczegóły zależą między innymi od sposobu uruchomienia procesu, ustawień bezpiecznego wyszukiwania DLL oraz użytych funkcji programistycznych. Znaczenie może mieć katalog zawierający program, katalog systemowy Windows, katalog systemowy 32-bitowy w systemie 64-bitowym, bieżący katalog procesu oraz katalogi wskazane w zmiennej środowiskowej PATH. Program może także używać jawnie określonych katalogów, manifestów lub mechanizmu ładowania z pełną ścieżką. Istotna jest architektura pliku. Biblioteka przeznaczona dla procesu 32-bitowego nie jest automatycznie zamiennikiem biblioteki 64-bitowej i odwrotnie. W systemie 64-bitowym istnieją odrębne katalogi systemowe, między innymi Różnica między brakiem DLL a innymi błędami ładowaniaSTATUS_DLL_NOT_FOUND należy odróżnić od błędu STATUS_ENTRYPOINT_NOT_FOUND, oznaczanego wartością 0xC0000139. Drugi z nich wskazuje, że biblioteka została odnaleziona, ale nie udostępnia funkcji lub symbolu oczekiwanego przez program. Przyczyną bywa wtedy niezgodna wersja biblioteki, pomieszanie plików pochodzących z różnych wydań programu albo niezgodność interfejsu binarnego. Jeszcze innym przypadkiem jest błąd inicjalizacji DLL, gdy plik istnieje, lecz nie może zostać prawidłowo uruchomiony. W komunikatach aplikacji często pojawia się także systemowy błąd Win32 ERROR_MOD_NOT_FOUND o numerze 126, opisywany jako „The specified module could not be found”. Ten komunikat może dotyczyć zarówno głównej biblioteki, jak i jednej z jej zależności. Wartość 126 nie dowodzi więc, że plik wymieniony w komunikacie jest jedynym brakującym elementem. Diagnostyka powinna uwzględniać importy biblioteki, architekturę procesu, ścieżki wyszukiwania oraz sposób instalacji konkretnego programu. Bezpieczna diagnostyka i przywrócenie działania programuPierwszym krokiem jest ustalenie, która aplikacja zgłasza błąd, kiedy problem wystąpił oraz czy zmieniano ostatnio jej instalację, sterowniki, aktualizacje systemu lub zawartość katalogu programu. Nie należy pobierać pojedynczej DLL z przypadkowych stron internetowych i kopiować jej do katalogu systemowego. Taki plik może pochodzić z innej wersji, mieć inną architekturę albo zawierać niepożądane modyfikacje. Bezpieczniejsze jest użycie instalatora źródłowego programu, funkcji naprawy instalacji lub ponownej instalacji właściwego pakietu producenta. W przypadku aplikacji systemowych można sprawdzić integralność plików Windows za pomocą narzędzia |