Jak naprawić błędy środowiska wykonawczego Windows Visual C ++

  • William Charles
  • 0
  • 2902
  • 498
Reklama

Udostępniane biblioteki w systemie Windows znacznie zwiększają wydajność programowania dla programisty, który nie musi wymyślać koła za każdym razem, gdy musi wykonać wspólne zadanie. Ułatwiają także wypełnianie dziur bezpieczeństwa we współdzielonym kodzie, gdy zostaną znalezione, ponieważ należy go załatać w mniejszej liczbie miejsc i nie wymaga ponownej kompilacji każdej aplikacji.

Pomimo tych pozytywnych aspektów mogą stwarzać własne problemy, próbując rozwiązać pierwotną przyczynę generowanych komunikatów o błędach.

Pytanie naszego czytelnika:

Jak rozwiązać problem 32-bitowego systemu Windows Vista C: \ Windows \ explorer.exe w systemie Windows Vista w komputerze Dell Inspiron 530?

Po kliknięciu przycisku OK w oknie dialogowym pokazanym na zrzucie ekranu ekran zaczerwieni się i wróci do normalnego działania, ale nie pozwoli mi uzyskać dostępu do C, D, a czasami do dysku E podczas próby dostępu do nich z mojego komputera.

Bieganie sfc / scannow nie znajduje żadnych błędów. Pobrałem aktualizacje z witryn Dell i Microsoft, próbując rozwiązać ten problem. Zainstalowałem także pakiet redystrybucyjny Microsoft Visual C ++ 2010 (x86). Komputer jest całkowicie aktualny zgodnie z Windows Update.

Odpowiedź Bruce'a:

Uwaga: Dyskusje na temat Eksploratora Windows w systemie Windows 7 i wcześniejszych wersjach dotyczą również Eksploratora plików w systemie Windows 8 i nowszych wersjach. Jeśli istnieje między nimi zauważalna różnica, zostanie to wyraźnie stwierdzone.

Powłoka systemu Windows

Eksplorator Windows jest powłoka i działa jako proces explorer.exe, jak widać w Menedżerze zadań lub Eksploratorze procesów Sysinternals Eksplorator procesów - Najmocniejsza wymiana Menedżera zadań [Windows] Eksplorator procesów - Najmocniejsza wymiana Menedżera zadań [Windows] Bądźmy szczerzy, Windows Menedżer zadań nie jest tak świetny do zrozumienia i zarządzania procesami uruchomionymi na twoim komputerze. Nawet w Windows 8, gdzie jest znacznie ulepszony, menedżer zadań nie może zbliżyć się do… Podobnie jak wiele innych programów systemu Windows, cała funkcjonalność zapewniana przez powłokę nie jest zawarta w tym pojedynczym pliku wykonywalnym. Istnieją dziesiątki innych plików EXE i DLL Jak naprawić brakujące pliki DLL Jak naprawić brakujące pliki DLL używane do implementacji arkuszy właściwości, obsługi właściwości, obsługi podglądu, menu kontekstowego i wielu innych elementów, których używasz codziennie w Eksploratorze Windows.

Rozszerzalna skorupa

Rozszerzenia powłoki umożliwiają programistom łatwe dodawanie funkcji do Eksploratora Windows, pisząc bibliotekę DLL w celu wykonania zadania i rejestrując bibliotekę DLL w systemie operacyjnym, dzięki czemu Eksplorator wie, gdzie znaleźć kod do wykonania zadania. Na przykład 7-Zip Jak wyodrębnić pliki z ZIP, RAR, 7z i innych wspólnych archiwów Jak wyodrębnić pliki z ZIP, RAR, 7z i innych wspólnych archiwów Czy kiedykolwiek miałeś do czynienia z plikiem .rar i zastanawiałeś się, jak go otworzyć? Na szczęście zarządzanie plikami ZIP i innymi skompresowanymi archiwami jest proste dzięki odpowiednim narzędziom. Oto, co musisz wiedzieć. dodaje podmenu do standardowego menu kontekstowego, zapewniając szybki dostęp do zadań związanych z obsługą archiwów, Sentinel dysku twardego Pilnuj zdrowia dysku twardego i dysku SSD Sentinel pilnuj zdrowia dysku twardego i dysku SSD Sentinel dysku twardego Czy masz miałeś kiedyś awarię napędu? Niestety nie ma panaceum na zapobieganie uszkodzeniom sprzętu. Ale pierwszym krokiem jest monitorowanie dysku twardego lub dysku SSD w celu podjęcia działań, gdy ich śmierć stanie się prawdopodobna. dodaje nakładki ikon do standardowych ikon dysków, dzięki czemu można na pierwszy rzut oka zobaczyć stan dysku, a HashTab dodaje nowy arkusz właściwości do obliczania i wyświetlania skrótów wybranego pliku.

Wiele z tych rozszerzeń powłoki jest zaimplementowanych jako serwery COM (Process Component Object Model). Oznacza to, że gdy proces, w tym przypadku Eksplorator Windows, korzysta z rozszerzenia, nie pojawi się w Menedżerze zadań ani Eksploratorze procesów jako osobny działający proces z własnym identyfikatorem procesu (PID). Zamiast tego wykonuje się w procesie wywołującym explorer.exe.

Domyślny proces pojedynczej instancji

Eksplorator Windows jest napisany tak, aby mógł działać jako dwa osobne procesy, ale - w domyślnej konfiguracji - uruchomi tylko jedną instancję. Kiedy jest uruchamiany po raz pierwszy jako część procesu uruchamiania, tworzy środowisko pulpitu Windows. Wykonanie go ponownie tworzy nowy wątek w istniejącym procesie, który wyświetla znane okno zarządzania plikami, zamiast rozpoczynania nowego procesu.

Takie zachowanie pozwala na zmniejszenie zajmowanego miejsca w pamięci, ale może również przynieść własny zwrot podczas rozwiązywania problemów. Błąd krytyczny lub nieobsługiwany wyjątek w kodzie wykonywanym w procesie explorer.exe, w tym w serwerach wewnątrzprocesowych dostarczanych przez biblioteki DLL, spowoduje, że całe środowisko pulpitu ulegnie awarii.

W większości przypadków proces pulpitu zostanie automatycznie ponownie uruchomiony. Jeśli się nie uruchomi ponownie, nadal możesz użyć Ctrl-Shift-Esc, aby uruchomić Menedżera zadań. Stamtąd przejdź do Plik> Nowe zadanie (Uruchom…)> rodzaj explorer.exe> ​​OK aby ponownie uruchomić proces.

Można tego uniknąć za pomocą prostej zmiany. otwarty Windows Explorer> Organizuj> Opcje folderów i wyszukiwania w Vista / 7. W systemie Windows 8 i nowszych otwórz Eksplorator plików> Widok> Opcje> Zmień opcje folderów i wyszukiwania. Wybierz Zobacz kartę i zaznacz Uruchom okna folderów w osobnym procesie.

Zmiana tego ustawienia izoluje proces pulpitu od wszystkich innych otwartych okien Eksploratora Windows. Jeśli którekolwiek z tych okien Eksploratora ulegnie awarii, pulpit pozostanie nienaruszony.

Biblioteka uruchomieniowa Microsoft Visual C ++ (CRT)

Biblioteka uruchomieniowa Microsoft Visual C ++ udostępnia procedury programowania systemu Windows, które automatyzują wiele zadań, takich jak wprowadzanie / wyprowadzanie, manipulowanie plikami, przydzielanie pamięci, wywołania systemowe i wiele innych.

Każda instalacja systemu Windows będzie mieć zainstalowane co najmniej dwie różne wersje CRT. Świeżo zbudowany Vista SP2 na komputerze z systemem Windows 10 będzie miał zarówno wersję 8.0, jak i 9.0 (odpowiednio VC 2005 i VC 2008). Po zainstalowaniu dodatkowego oprogramowania może również zawierać nowsze wersje środowiska wykonawczego, w zależności od wersji Visual C ++, która została użyta do utworzenia programu lub dowolnego z jego składników.

Błędy czasu wykonania

W przypadku napotkania błędu lub wyjątku w kodzie, najlepiej będzie on obsłużony tak szybko, jak to możliwe w aktualnie wykonywanej procedurze, i albo zostanie poprawiony, albo pozwoli na płynną awarię. Jeśli błąd nie jest obsługiwany lokalnie, zostaje przekazany do kodu, który wywołał aktualnie wykonywany kod, i proces jest kontynuowany do momentu obsłużenia wyjątku. Jeśli zakończy bieg na szczyt łańcucha i nadal nie będzie obsługiwany, wygeneruje błąd czasu wykonywania, jak pokazano powyżej.

Gdy użytkownik kliknie przycisk OK, proces zostanie zakończony. Jeśli program ma zdefiniowane zachowanie awaryjne, takie jak usługi krytyczne lub jego stan uruchamiania jest monitorowany przez inny proces, może zostać automatycznie odrodzony. Tak dzieje się w tym przypadku. Ekran gaśnie po zakończeniu procesu explorer.exe, a następnie pulpit wraca po ponownym uruchomieniu procesu explorer.exe.

Chociaż powyższy komunikat o błędzie wyraźnie wskazuje, że pochodzi on z procesu explorer.exe, prawdopodobnie nie jest to problem z samym plikiem explorer.exe. Jest znacznie bardziej prawdopodobne, że winowajcą jest gdzie indziej, na przykład rozszerzenie innej firmy, które jest używane przez Eksploratora.

Inne uwagi

W powyższym opisie problemu naszego czytelnika jest kilka dodatkowych elementów, które musimy wziąć pod uwagę:

  • W czasie awarii Explorer próbował zapełnić widok listy, ale nie był w stanie go wypełnić.
  • Brak możliwości dostępu do dysków po odrodzeniu pulpitu może wskazywać, że w innym procesie zablokowano jedno lub więcej urządzeń, uniemożliwiając w ten sposób dostęp do nowo utworzonego procesu explorer.exe.
  • Bieganie sfc / scannow i uzyskanie czystego stanu zdrowia, powoduje, że zasoby chronione przez system Windows znajdują się na dole listy do rozważenia. Inne przyczyny są znacznie bardziej prawdopodobne.

Poprawki są dostępne

W tym konkretnym przypadku są trzy obszary, w których szukałbym rozwiązania. Pierwszy dotyczy usługi wyszukiwania systemu Windows, drugi polega na badaniu rozszerzeń powłoki, a ostatni na samych redystrybucjach VC ++.

Wyszukiwanie systemu Windows

Ponieważ oryginalny zrzut ekranu pokazuje awarię, gdy Eksplorator próbuje zapełnić widok listy, możliwe jest, że usługa wyszukiwania systemu Windows blokuje dostęp do wymaganych zasobów. Widziałem, jak to się dzieje, gdy usługa ulega awarii i nie ma poprawnych parametrów restartu.

naciśnij Win + R> rodzaj services.msc> OK aby uruchomić konsolę zarządzania z modułem usług. Przewiń w dół do Wyszukiwarki Windows i kliknij dwukrotnie pozycję, aby otworzyć okno dialogowe Właściwości. Upewnij się, że ustawienia na karcie Odzyskiwanie są zgodne z obrazem poniżej.

Najczęstszym problemem jest “Uruchom ponownie usługę po:” oprawa. Ten błąd często występuje, gdy to ustawienie jest niezerowe.

Problematyczne rozszerzenia powłoki

Pobierz ShellExView Nirsoft dla architektury systemu (x86 lub x64), zainstaluj i uruchom. Zbadanie systemu i wypełnienie tabeli danymi zajmie trochę czasu. Przewiń do kolumny Zmodyfikowany czas CLSID i kliknij nagłówek, aby posortować według tego pola. Jeśli chcesz wykluczyć moduły dostarczone przez Microsoft, możesz przejść do Opcje> Ukryj wszystkie rozszerzenia Microsoft. Jeśli używasz 64-bitowej wersji systemu Windows, możesz również chcieć wyświetlić 32-bitowe rozszerzenia w systemie, przechodząc do Opcje> Pokaż 32-bitowe rozszerzenia powłoki.

Poszukaj rozszerzeń, które zostały dodane tuż przed wystąpieniem objawów. Wybierz jeden lub więcej i naciśnij F7 lub przejdź do Plik> Wyłącz wybrane elementy, lub kliknij czerwoną ikonę LED na pasku narzędzi. Najlepiej byłoby to zrobić pojedynczo.

Sprawdź, czy objawy się utrzymują. Jeśli tak, możesz ponownie włączyć wcześniej wyłączone rozszerzenia za pomocą F8, Plik> Włącz wybrane elementy, lub zielona ikona paska narzędzi LED. Stąd wyłącz inne rozszerzenie i powtarzaj proces testowania, aż znajdziesz to, które powoduje problem.

Napraw / zainstaluj ponownie składniki redystrybucyjne VC ++

Używam tego jako ostateczności, jeśli tylko jeden program wykopuje błędy. Jeśli masz wiele programów, które mają problemy z błędami środowiska wykonawczego VC ++, możesz spróbować najpierw.

Przeglądając zainstalowane programy w moim systemie (Panel sterowania> Programy i funkcje), pokazuje każdą wersję pakietów redystrybucyjnych (i niektóre ich aktualizacje), od wersji 8 do wersji 12 (VC ++ 2005 do VC ++ 2013). Mam je zainstalowane z powodu używanych przeze mnie narzędzi programistycznych Microsoft. Większość użytkowników nie ma ich wszystkich.

Najnowsze pliki do pobrania dla obsługiwanych wersji Visual C ++ firmy Microsoft. Dla naszych celów tutaj musisz się martwić tylko tymi, które są oznaczone jako “redystrybucyjny” paczki Łącza sklasyfikowane jako dodatki Service Pack służą do narzędzi programistycznych, a nie tylko środowisk wykonawczych. Będziesz potrzebował tylko tych, które są obecnie wymienione w zainstalowanych programach w twoim systemie. Instalowanie innych wersji nie pomoże w tym przypadku. Użytkownicy 64-bitowych systemów operacyjnych mogą potrzebować zarówno wersji CRT x86, jak i x64.

Usługa Windows Update sprawdza, czy na komputerze są zainstalowane najnowsze aktualizacje tych pakietów, ale nie sprawdza, czy jest poprawnie zainstalowana i czy nie została uszkodzona. Instalatorzy mogą sprawdzić, czy wszystkie pliki środowiska wykonawczego są poprawne, a wszystkie wpisy rejestru są prawidłowe.

Po pobraniu odpowiednich instalatorów uruchom je w systemie. Wersje z 2005 r. Monitują o zaakceptowanie umowy licencyjnej przed ponowną instalacją pakietu. Wszystkie pozostałe mają GUI, które zapyta, czy chcesz naprawić lub odinstalować istniejącą instalację. W większości przypadków operacja naprawy naprawi wszelkie problemy.

Jeśli chcesz wypróbować najbardziej ekstremalną metodę, możesz odinstalować środowiska wykonawcze, ponownie uruchomić komputer, a następnie ponownie zainstalować. Nie polecam tej metody w środowiskach uruchomieniowych 2005 i 2008. Bez nich system Windows wygeneruje wiele błędów, a po zrestartowaniu nie będzie wielu funkcji.

Wniosek

Przy odrobinie obserwacji, odrobinie prób i błędów oraz pewnej wiedzy na temat generowania błędów w czasie wykonywania w systemie, problemy z oprogramowaniem można znaleźć i rozwiązać bez uciekania się do skomplikowanych narzędzi do debugowania i dzienników.

Czy wystąpiły błędy w czasie wykonywania w systemie? Co było potrzebne do ich rozwiązania? Daj mi znać w komentarzach pod spodem.




Jeszcze bez komentarzy

O nowoczesnej technologii, prostej i niedrogiej.
Twój przewodnik w świecie nowoczesnych technologii. Dowiedz się, jak korzystać z technologii i gadżetów, które nas otaczają każdego dnia i dowiedz się, jak odkrywać ciekawe rzeczy w Internecie.