mgrzeg Opublikowano 22 Lutego 2013 Zgłoś Udostępnij Opublikowano 22 Lutego 2013 Do poprawnego działania aplikacji niezbędny jest odpowiedni zestaw ładowanych bibliotek. W trakcie uruchamiania aplikacji, a także później w czasie jej działania, ładowane do pamięci procesu są biblioteki z różnych miejsc w systemie: katalogu aplikacji, katalogów systemowych, katalogów znajdujących się w zmiennej środowiskowej PATH, etc. Gdy zostanie załadowana nieprawidłowa biblioteka, może pojawić się błąd związany z niemożnością znalezienia odpowiedniej funkcji w tablicy eksportów. Czasem aplikacja wymaga zestawu bibilotek niedostępnych w danym systemie i wówczas jedynym rozwiązaniem jest uruchomienie takiej aplikacji w odpowiednim systemie, wszelkie próby dokopiowywania plików z innych systemów nic tu nie dadzą. Przykładem tego typu aplikacji są gry, które wymagają do poprawnego działania DirectX w wersji 10, lub 11, czyli zestawów, które nie są dostępne na Windows XP i jakiekolwiek próby uruchomienia gry pod Windows XP po prostu nie mają szans powodzenia. Czasem jednak problem polega na nieprawidłowym zestawie bibliotek dostarczonym z aplikacją, lub błędnymi wersjami bibliotek znajdującymi się w systemie i wówczas należy takie pliki zidentyfikować, zmienić ich nazwy, po czym spróbować ponownie uruchomić aplikację. Procedura postępowania: 1. Przygotowanie logu Dependency Walkera (DW) - Pobierz program Dependency Walker [KLIK] w wersji odpowiedniej dla architektury Twojego systemu - dla Windows XP najczęściej będzie to wersja 32-bitowa [KLIK]; - Uruchom Dependency Walker, wybierz File->Open i znajdź plik uszkodzonej aplikacji (pliku .exe). Alternatywnie możesz wskazać wprost skrót do programu. Informacyjnie: plik aplikacji znajdziesz we właściwościach skrótu -> zakładka Skrót -> "Element docelowy". - Jeśli pojawią się jakiekolwiek komunikaty błędów, to zaakceptuj wszystkie, po czym zapisz plik logu: File->Save As, przy czym typ pliku: Dependency Walker Image (*.dwi). 2. Przygotowanie zrzutu pamięci - Na dysku C utwórz katalog Dumps, tj. c:\dumps - Pobierz ze strony Sysinternals ProcDump, zawartość wypakuj do katalogu utworzonego w poprzednim kroku - Uruchom uszkodzony program - W momencie, gdy pojawi się komunikat błędu ('nie znaleziono punktu wejścia...'), to nie zamykaj go. - Na liście procesów menadżera zadań odszukaj nazwę procesu powiązanego z uruchamianym programem, dla ustalenia uwagi przyjmijmy, że nazywa się "zepsuty.exe" - Uruchom wiersz polecenia (np. poprzez start -> uruchom, wpisz "cmd.exe" bez " i enter) - Przejdź do katalogu z procdumpem cd \dumps - Zrób zrzut procesu ZEPSUTY.EXE procdump /ma ZEPSUTY.EXE full.dmp 3. Spakuj (np. 7-zipem) plik full.dmp z katalogu c:\dumps, który został utworzony w kroku 2 oraz plik logu Dependency Walkera, który powstał w kroku 1 i wrzuć np. zippyshare.com i daj link w odpowiedzi. 4. Możesz już zamknąć komunikat błędu wadliwej aplikacji. Lista gier, które nie działają w Windows XP (wymagają DirectX w wersjach niedostępnych na ten system): 1. Snipper Elite V2. Informacja o wymaganiach minimalnych: [KLIK] 2. Call of Duty: Black Ops 2. Informacja o wymaganiach: [KLIK] 3. F1 Race Stars. F1racestars.exe statycznie zlinkowane z dxgi.dll oraz d3d11.dll. Dodatkowa lista gier wspierających DX10 (niektóre nie wspierają wcześniejszych wersji) [KLIK]. Podobnie dla DX11 [KLIK]. Odnośnik do komentarza
Rekomendowane odpowiedzi