Wie man Windows Visual C ++ Laufzeitfehler repariert

Visual C ++ - Fehler sind ein häufiges Problem für Windows-Benutzer. Aber weißt du, wie man sie repariert?

Visual C ++ - Fehler sind ein häufiges Problem für Windows-Benutzer.  Aber weißt du, wie man sie repariert?
Werbung

Gemeinsame Bibliotheken in Windows machen die Programmierung für den Programmierer viel effizienter, der das Rad nicht jedes Mal neu erfinden muss, wenn er eine allgemeine Aufgabe ausführen muss. Sie machen es außerdem einfacher, Sicherheitslücken in gemeinsam genutzten Code zu stopfen, wenn sie gefunden werden, da sie an weniger Stellen gepatcht werden müssen und nicht jede Anwendung neu kompiliert werden muss.

Trotz dieser positiven Aspekte können sie ihre eigenen Probleme aufwerfen, wenn sie versuchen, die Ursache von Fehlernachrichten, die sie möglicherweise erzeugen, zu beheben.

Unsere Leserfrage:

Wie behebe ich ein Windows Vista 32-bit C: \ Windows \ explorer.exe Problem auf einem Dell Inspiron 530?

Nach dem Klicken auf den OK-Button in dem Dialog, der in dem Screenshot gezeigt ist, wird der Bildschirm schwarz und kehrt zum normalen Laufen zurück, aber es erlaubt mir nicht, auf das C-, D- und manchmal auf das E-Laufwerk zuzugreifen, wenn ich versuche, auf sie zuzugreifen von meinem Computer.

Das Ausführen von sfc / scannow findet keine Fehler. Ich habe Updates von den Dell- und Microsoft-Websites heruntergeladen, um dieses Problem zu beheben. Ich habe auch das Microsoft Visual C ++ 2010 Redistributable Package (x86) installiert. Der PC ist gemäß Windows Update vollständig auf dem neuesten Stand.

Laufzeit Fehler

Bruce's Antwort:

Hinweis: Diskussionen über Windows Explorer in Windows 7 und früheren Versionen gelten auch für den Datei-Explorer in Windows 8 und höheren Versionen. Wenn zwischen ihnen ein bemerkenswerter Unterschied besteht, wird dies ausdrücklich erwähnt.

Die Windows-Shell

Windows Explorer ist die Shell und läuft als explorer.exe Prozess im Task Manager oder Sysinternals Process Explorer Process Explorer - Der mächtigste Task-Manager-Ersatz [Windows] Process Explorer - Der mächtigste Task-Manager-Ersatz [Windows] Seien wir ehrlich Der Windows Task-Manager ist nicht so gut zum Verstehen und Verwalten der Prozesse auf Ihrem Computer. Selbst unter Windows 8, wo es stark verbessert wurde, kann der Task-Manager dem ... Read More. Wie bei vielen anderen Windows-Programmen ist die gesamte von der Shell bereitgestellte Funktionalität nicht in diese einzelne ausführbare Datei integriert. Es gibt Dutzende von anderen EXE-und DLL-Dateien So beheben Sie fehlende DLL-Dateifehler So beheben Sie fehlende DLL-Datei Fehler Lesen Sie mehr verwendet, um Eigenschaftenblätter, Eigenschaftenhandler, Vorschauhandler, Kontextmenüs und viele andere Elemente, die Sie im Windows Explorer verwenden, zu implementieren Tag.

Erweiterbare Shell

Shell-Erweiterungen ermöglichen Programmierern das einfache Hinzufügen von Funktionen zu Windows Explorer, indem sie eine DLL schreiben, um die Aufgabe auszuführen und die DLL mit dem Betriebssystem zu registrieren, sodass Explorer weiß, wo der Code zum Ausführen der Aufgabe zu finden ist. Zum Beispiel 7-Zip So extrahieren Sie Dateien aus ZIP-, RAR-, 7z- und anderen gemeinsamen Archiven So extrahieren Sie Dateien aus ZIP-, RAR-, 7z- und anderen gemeinsamen Archiven Waren Sie jemals mit einer .rar-Datei konfrontiert und haben Sie gefragt, wie Sie sie öffnen können? Glücklicherweise ist die Verwaltung von ZIP-Dateien und anderen komprimierten Archiven mit den richtigen Tools einfach. Hier ist, was Sie wissen müssen. Read More fügt dem Standard-Kontextmenü ein Untermenü hinzu, das schnellen Zugriff auf Archivierungsaufgaben ermöglicht. Festplatten-Sentinel Behalten Sie Ihre Festplatten- und SSD-Gesundheit im Auge Mit der Festplatte Sentinel Behalten Sie Ihre Festplatten- und SSD-Integrität mit Festplatten-Sentinel im Auge Hatten Sie jemals einen Laufwerksfehler? Leider gibt es kein Patentrezept, um Hardware-Schäden zu vermeiden. Aber die Überwachung Ihrer Festplatte oder SSD, um zu handeln, wenn ihr Tod wahrscheinlich wird, ist ein erster Schritt. Read More fügt den Standardlaufwerksymbolen Symbol-Overlays hinzu, sodass Sie den Laufwerkzustandsstatus auf einen Blick sehen können. HashTab fügt ein neues Eigenschaftsfenster hinzu, um Hashwerte der ausgewählten Datei zu berechnen und anzuzeigen.

Kontextmenü

Viele dieser Shell-Erweiterungen werden als COM-Server (In-Process Component Object Model) implementiert. Das bedeutet, wenn ein Prozess, in diesem Fall Windows Explorer, die Erweiterung verwendet, wird er nicht im Task-Manager oder im Prozess-Explorer als eigenständig ausgeführter Prozess mit einer eigenen Prozess-ID (PID) angezeigt. Stattdessen wird es im aufrufenden explorer.exe-Prozess ausgeführt.

Standard-Einzelinstanzprozess

Windows Explorer wurde so geschrieben, dass er als zwei separate Prozesse ausgeführt werden kann. In der Standardkonfiguration wird jedoch nur eine einzige Instanz ausgeführt. Wenn es zum ersten Mal als Teil des Startvorgangs ausgeführt wird, erstellt es die Windows-Desktopumgebung. Wenn Sie es erneut ausführen, wird im vorhandenen Prozess ein neuer Thread erstellt, der das vertraute Dateiverwaltungsfenster anzeigt, anstatt einen neuen Prozess zu starten.

Dieses Verhalten ermöglicht einen reduzierten Speicherbedarf, kann jedoch auch bei der Fehlerbehebung zu einem kleinen Problem führen. Ein kritischer Fehler oder eine unbehandelte Ausnahme in Code, der im explorer.exe-Prozess ausgeführt wird, einschließlich von DLLs bereitgestellter prozessinterner Server, führt dazu, dass die gesamte Desktopumgebung darunter leidet.

In den meisten Fällen wird der Desktop-Prozess automatisch neu gestartet. Wenn es nicht neu gestartet wird, sollten Sie weiterhin Strg-Umschalt-Esc verwenden, um den Task-Manager aufzurufen. Von dort gehen Sie zu Datei> Neue Aufgabe (Ausführen ...)> tippen Sie explorer.exe> ​​OK, um den Prozess neu zu starten.

Dies kann mit einer einfachen Änderung vermieden werden. Öffnen Sie Windows Explorer> Organisieren> Ordner und Suchoptionen in Vista / 7. Unter Windows 8 und höher öffnen Sie den Datei-Explorer> Ansicht> Optionen> Ordner und Suchoptionen ändern . Wählen Sie die Registerkarte Ansicht und aktivieren Sie Ordnerfenster starten in einem separaten Prozess .

Ordneroptionen

Wenn Sie diese Einstellung ändern, wird Ihr Desktop-Prozess von allen anderen Windows Explorer-Fenstern isoliert, die Sie geöffnet haben. Wenn eines dieser Explorer-Fenster abstürzt, bleibt Ihr Desktop unversehrt.

Microsoft Visual C ++ - Laufzeitbibliothek (CRT)

Die Microsoft Visual C ++ - Laufzeitbibliothek stellt Routinen zum Programmieren von Windows bereit, die viele Aufgaben automatisieren, z. B. Eingabe / Ausgabe, Dateimanipulation, Speicherzuordnung, Systemaufrufe und viele andere.

Bei jeder Windows-Installation sind mindestens zwei verschiedene CRT-Versionen installiert. Auf einem frisch gebauten Computer mit Vista SP2 bis Windows 10 sind sowohl Version 8.0 als auch Version 9.0 (VC 2005 und VC 2008) vorhanden. Wenn zusätzliche Software installiert wird, kann es auch neuere Versionen der Laufzeiten enthalten, je nachdem, welche Version von Visual C ++ zum Erstellen des Programms oder einer seiner Komponenten verwendet wurde.

Laufzeitfehler

Wenn ein Fehler oder eine Ausnahme in einem Codeabschnitt auftritt, wird er idealerweise so schnell wie möglich in der aktuell ausgeführten Prozedur behandelt und entweder korrigiert oder für einen fehlerfreien Fehler berücksichtigt. Wenn der Fehler nicht lokal behandelt wird, wird er an den Code übergeben, der den aktuell ausgeführten Code aufgerufen hat, und der Prozess wird fortgesetzt, bis die Ausnahme behandelt wird. Wenn der Vorgang bis zum Anfang der Kette abgeschlossen ist und weiterhin nicht verarbeitet wird, wird ein Laufzeitfehler generiert, wie oben dargestellt.

Wenn der Benutzer auf die Schaltfläche OK klickt, wird der Prozess beendet. Wenn das Programm ein definiertes Fehlerverhalten aufweist, z. B. kritische Dienste, oder sein Ausführungsstatus von einem anderen Prozess überwacht wird, wird es möglicherweise automatisch neu gestartet. Dies ist, was in diesem Fall passiert. Der Bildschirm wird schwarz, wenn der explorer.exe-Prozess beendet wird, und der Desktop kehrt zurück, wenn der explorer.exe-Prozess neu gestartet wird.

Obwohl die obige Fehlermeldung deutlich anzeigt, dass sie vom explorer.exe-Prozess stammt, ist es wahrscheinlich kein Problem mit explorer.exe selbst. Es ist viel wahrscheinlicher, dass der Täter an anderer Stelle liegt, wie beispielsweise eine Erweiterung eines Drittanbieters, die von Explorer verwendet wird.

Andere Überlegungen

Mit der obigen Beschreibung unseres Lesers müssen wir noch ein paar zusätzliche Punkte berücksichtigen:

  • Zum Zeitpunkt des Absturzes versuchte Explorer, aber nicht in der Lage, die Listenansicht zu füllen.
  • Die Unfähigkeit, auf Laufwerke zuzugreifen, nachdem der Desktop neu gestartet wurde, kann darauf hindeuten, dass bei einem anderen Prozess eines oder mehrere dieser Geräte gesperrt sind, wodurch der Zugriff auf den neu erstellten explorer.exe-Prozess verhindert wird.
  • Das Ausführen von sfc / scannow und das Erzielen einer einwandfreien Gesundheitsprüfung werden von Windows geschützte Ressourcen an den unteren Rand der Liste verschoben . Andere Ursachen sind viel wahrscheinlicher.

Die Fixes sind in

In diesem speziellen Fall gibt es drei Bereiche, in denen ich nach einer Lösung suchen würde. Der erste bezieht den Windows Search-Dienst ein, der zweite umfasst die Untersuchung von Shell-Erweiterungen und der letzte wäre der VC ++ Redistributable selbst.

Windows-Suche

Da der ursprüngliche Screenshot den Absturz zeigt, wenn Explorer versucht, die Listenansicht zu füllen, blockiert der Windows Search-Dienst möglicherweise den Zugriff auf die erforderlichen Ressourcen. Ich habe gesehen, dass dies passiert, wenn der Dienst abstürzt und nicht über die richtigen Neustartparameter verfügt.

Drücken Sie Win + R> geben Sie services.msc ein> OK, um die Verwaltungskonsole mit dem Dienstmodul zu starten. Scrollen Sie nach unten zu Windows Search und doppelklicken Sie auf den Eintrag, um das Dialogfeld Eigenschaften zu öffnen. Stellen Sie sicher, dass die Einstellungen auf der Registerkarte Wiederherstellung mit dem folgenden Bild übereinstimmen.

Windows-Sucheigenschaften

Das häufigste Problem ist die Einstellung "Dienst neu starten nach:". Dieser Fehler tritt häufig auf, wenn diese Einstellung nicht Null ist.

Problematische Shell-Erweiterungen

Laden Sie Nirsoft's ShellExView für Ihre Systemarchitektur (x86 oder x64) herunter, installieren und starten Sie es. Es wird ein wenig Zeit brauchen, um das System zu untersuchen und die Tabelle mit Daten zu füllen. Blättern Sie zur Spalte CLSID Modified Time und klicken Sie auf die Überschrift, um nach diesem Feld zu sortieren. Wenn Sie die von Microsoft bereitgestellten Module ausschließen möchten, können Sie Optionen> Alle Microsoft-Erweiterungen ausblenden auswählen . Wenn Sie eine 64-Bit-Version von Windows verwenden, können Sie auch die 32-Bit-Erweiterungen auf dem System anzeigen, indem Sie Optionen> 32-Bit-Shell-Erweiterungen anzeigen auswählen .

Suchen Sie nach Erweiterungen, die kurz vor Beginn der Symptome hinzugefügt wurden. Wählen Sie eine oder mehrere und drücken Sie F7 oder gehen Sie zu Datei> Ausgewählte Elemente deaktivieren, oder klicken Sie auf das rote LED-Symbol in der Symbolleiste. Idealerweise sollte dies einzeln durchgeführt werden.

Testen Sie, ob die Symptome bestehen bleiben. Wenn dies der Fall ist, können Sie die zuvor deaktivierten Erweiterungen erneut aktivieren, indem Sie F8, Datei> Ausgewählte Elemente aktivieren oder das grüne LED-Symbol in der Symbolleiste verwenden. Deaktivieren Sie von hier aus eine andere Erweiterung und wiederholen Sie den Testvorgang, bis Sie den Fehler gefunden haben, der das Problem verursacht.

Reparatur / Neuinstallation von VC ++ Redistributables

Ich benutze diesen als letzten Ausweg, wenn nur ein Programm Fehler ausschaltet. Wenn Sie mehrere Programme haben, die Probleme mit VC ++ - Laufzeitfehlern haben, sollten Sie dies zuerst versuchen.

Wenn Sie sich die installierten Programme auf meinem System ansehen ( Systemsteuerung> Programme und Funktionen ), werden alle Versionen der weitervertreibbaren Pakete (und einige ihrer Updates) von Version 8 bis Version 12 (VC ++ 2005 bis VC ++ 2013) angezeigt. Ich habe sie wegen der Microsoft-Programmiertools installiert, die ich verwende. Die meisten Benutzer werden nicht alle haben.

installiert-vcpp-redist

Sie können die neuesten Downloads für unterstützte Versionen von Visual C ++ von Microsoft finden. Für unsere Zwecke müssen Sie sich nur mit solchen befassen, die als "weiterverteilbare" Pakete gekennzeichnet sind. Links, die als Service Packs klassifiziert sind, sind für die Programmierwerkzeuge, nicht nur für die Laufzeiten. Sie benötigen nur diejenigen, die derzeit in den installierten Programmen auf Ihrem System aufgeführt sind. Die Installation anderer Versionen wird in diesem Fall nicht helfen. Benutzer von 64-Bit-Betriebssystemen benötigen möglicherweise sowohl die x86- als auch die x64-Version der CRT.

Windows Update überprüft, ob auf Ihrem Computer die neuesten Updates für diese Pakete installiert sind. Es wird jedoch nicht überprüft, ob es ordnungsgemäß installiert wurde und nicht beschädigt wurde. Die Installationsprogramme können sicherstellen, dass alle Laufzeitdateien korrekt sind und alle Registrierungseinträge korrekt sind.

Nachdem Sie die entsprechenden Installationsprogramme heruntergeladen haben, führen Sie sie auf dem System aus. In den Versionen 2005 werden Sie aufgefordert, eine Lizenzvereinbarung zu akzeptieren, bevor Sie das Paket erneut installieren. Alle anderen haben eine GUI, die Sie fragt, ob Sie die bestehende Installation reparieren oder deinstallieren möchten. In den meisten Fällen wird ein Reparaturvorgang alle Probleme beheben.

Wenn Sie die extremste Methode ausprobieren möchten, können Sie die Laufzeiten deinstallieren, den Rechner neu starten und dann neu installieren. Ich empfehle diese Methode nicht mit den Laufzeiten 2005 und 2008. Ohne sie wird Windows viele Fehler generieren und eine große Menge an Funktionalität wird beim Neustart nicht vorhanden sein.

Fazit

Mit ein bisschen Beobachtung, einem Hauch von Versuch und Irrtum und einem gewissen Verständnis dafür, wie Fehler aus Laufzeiten auf dem System entstehen, können Softwareprobleme gefunden und gelöst werden, ohne auf komplizierte Debugging-Tools und Protokolle zurückgreifen zu müssen.

Sind auf Ihrem System Laufzeitfehler aufgetreten? Was war nötig, um sie zu lösen? Lass es mich in den Kommentaren unten wissen.

In this article