Beheben von Windows Visual C ++ - Laufzeitfehlern

Beheben von Windows Visual C ++ - Laufzeitfehlern / Fragen Sie die Experten

Gemeinsame Bibliotheken in Windows machen die Programmierung für den Programmierer wesentlich effizienter, da er das Rad nicht jedes Mal neu erfinden muss, wenn er eine gemeinsame Aufgabe ausführen muss. Sie erleichtern auch das Einfügen von Sicherheitslücken in gemeinsamem Code, 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 der Fehlermeldungen zu beheben, die sie generieren können.

Die Frage unseres Lesers:

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

Nach dem Klicken auf die Schaltfläche OK in dem in der Abbildung gezeigten Dialog wird der Bildschirm schwarz und kehrt zum normalen Betrieb zurück. Allerdings kann ich beim Versuch, auf sie zuzugreifen, nicht auf die Laufwerke C, D und manchmal das E-Laufwerk zugreifen von meinem Computer aus.

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

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 es einen bemerkenswerten Unterschied zwischen ihnen gibt, wird dies explizit angegeben.

Die Windows-Shell

Windows Explorer ist Die Shell wird als Prozess explorer.exe ausgeführt, wie im Task-Manager oder im Prozess-Explorer von Sysinternals beschrieben. Prozess-Explorer - Der leistungsfähigste Task-Manager-Ersatz [Windows] Prozess-Explorer - Der Stärkste Task-Manager-Ersatz [Windows] Lassen Sie uns ehrlich sein, das Windows Der Task-Manager ist nicht besonders gut geeignet, um die auf Ihrem Computer ausgeführten Prozesse zu verstehen und zu verwalten. Selbst unter Windows 8, wo es viel verbessert wurde, kann der Task-Manager nicht in die Nähe der… Read More. Wie in vielen anderen Windows-Programmen ist nicht die gesamte Funktionalität, die von der Shell bereitgestellt wird, in dieser einzelnen ausführbaren Datei enthalten. Es gibt Dutzende anderer EXE- und DLL-Dateien. So beheben Sie fehlende DLL-Dateifehler So beheben Sie fehlende DLL-Dateifehler Weitere Informationen zum Implementieren von Eigenschaftsfenstern, Eigenschaftshandlern, Vorschauhandlern, Kontextmenüs und vielen anderen Elementen, die Sie jeweils in Windows Explorer verwenden Tag.

Erweiterbare Shell

Shell-Erweiterungen ermöglichen Programmierern das einfache Hinzufügen von Funktionen zu Windows Explorer, indem eine DLL geschrieben wird, um die Aufgabe auszuführen und die DLL beim Betriebssystem zu registrieren, sodass der Explorer weiß, wo er den Code findet, der die Aufgabe ausführen soll. Beispiel: 7-Zip zum Extrahieren von Dateien aus ZIP, RAR, 7z und anderen gängigen Archiven zum Extrahieren von Dateien aus ZIP, RAR, 7z und anderen gängigen Archiven Waren Sie jemals mit einer .rar-Datei konfrontiert und haben sich 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. Weitere Informationen fügt dem Standard-Kontextmenü ein Untermenü hinzu, das einen schnellen Zugriff auf Archivierungsaufgaben ermöglicht. Festplatten-Wächter Behalten Sie die Gesundheit Ihrer HDD- und SSD-Festplatten mit Festplatten-Wächter im Auge Behalten Sie die Festplatten- und SSD-Festplatten mit Festplatten-Wachposten im Auge Hatten Sie jemals einen Laufwerksausfall? Leider gibt es kein Allheilmittel, um Hardwareschäden zu vermeiden. Die Überwachung Ihrer Festplatte oder SSD, um zu handeln, wenn deren Tod wahrscheinlich ist, ist ein erster Schritt. Mehr lesen fügt den Standard-Laufwerkssymbolen Symbolüberlagerungen hinzu, sodass Sie den Laufwerkstatus auf einen Blick sehen können. HashTab fügt ein neues Eigenschaftsfenster hinzu, um Hashes der ausgewählten Datei zu berechnen und anzuzeigen.

Viele dieser Shell-Erweiterungen werden als In-Process-COM-Server (Component Object Model) implementiert. Dies bedeutet, dass ein Prozess, in diesem Fall Windows Explorer, die Erweiterung verwendet, im Task-Manager oder im Prozess-Explorer nicht als separater Prozess mit eigener Prozesskennung (PID) angezeigt wird. Stattdessen wird es innerhalb des aufrufenden explorer.exe-Prozesses ausgeführt.

Standard-Einzelinstanzprozess

Windows Explorer ist so geschrieben, dass er als zwei separate Prozesse ausgeführt werden kann. In seiner Standardkonfiguration wird jedoch nur eine einzige Instanz ausgeführt. Bei der ersten Ausführung im Rahmen des Startvorgangs wird die Windows-Desktopumgebung erstellt. 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 geringeren Speicherbedarf, kann jedoch bei der Problembehandlung auch eine kleine Abweichung mit sich bringen. Ein kritischer Fehler oder eine nicht behandelte Ausnahme im Code, der im Prozess explorer.exe ausgeführt wird, einschließlich In-Process-Servern, die von DLLs bereitgestellt werden, führt dazu, dass die gesamte Desktopumgebung nicht mehr funktioniert.

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

Dies kann mit einer einfachen Änderung vermieden werden. Öffnen Windows Explorer> Organisieren> Ordner- und Suchoptionen in Vista / 7. Öffnen Sie für Windows 8 und höher Datei-Explorer> Ansicht> Optionen> Ordner und Suchoptionen ändern. Wähle aus Registerkarte "Ansicht" und prüfe Starten Sie die Ordnerfenster in einem separaten Prozess.

Das Ändern dieser Einstellung isoliert Ihren Desktop-Prozess von allen anderen geöffneten Windows Explorer-Fenstern. Wenn eines dieser Explorer-Fenster abstürzt, bleibt Ihr Desktop unbeschädigt.

Microsoft Visual C ++ - Laufzeitbibliothek (CRT)

Die Microsoft Visual C ++ - Laufzeitbibliothek enthält Routinen zum Programmieren von Windows, die viele Aufgaben wie Eingabe / Ausgabe, Dateibearbeitung, Speicherzuordnung, Systemaufrufe und viele andere automatisieren.

Bei jeder Windows-Installation werden mindestens zwei verschiedene Versionen des CRT installiert. Auf einem neu gebauten Vista SP2 über Windows 10 werden sowohl Version 8.0 als auch Version 9.0 (VC 2005 bzw. VC 2008) vorhanden sein. Wenn zusätzliche Software installiert wird, kann es auch neuere Versionen der Laufzeiten enthalten, abhängig davon, welche Version von Visual C ++ zum Erstellen des Programms oder einer seiner Komponenten verwendet wurde.

Laufzeitfehler

Wenn in einem Code ein Fehler oder eine Ausnahme auftritt, wird dieser im Idealfall so schnell wie möglich in der gerade ausgeführten Prozedur behandelt und entweder korrigiert oder ein fehlerfreier Fehler ermöglicht. 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 Lauf an der Spitze der Kette abgeschlossen ist und immer noch nicht verarbeitet wird, wird wie oben gezeigt ein Laufzeitfehler generiert.

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

Obwohl die obige Fehlermeldung eindeutig darauf hinweist, dass sie vom Prozess explorer.exe stammt, ist es wahrscheinlich nicht ein Problem mit explorer.exe selbst. Es ist viel wahrscheinlicher, dass der Täter an einem anderen Ort liegt, beispielsweise eine Erweiterung eines Drittanbieters, die von Explorer verwendet wird.

Andere Überlegungen

Bei der Beschreibung des Problems durch unseren Leser gibt es einige zusätzliche Punkte, die wir berücksichtigen müssen:

  • Zum Zeitpunkt des Absturzes hat der Explorer versucht, die Listenansicht zu füllen.
  • Die Unfähigkeit, auf Laufwerke zuzugreifen, nachdem der Desktop erneut gestartet wurde, weist möglicherweise darauf hin, dass ein oder mehrere dieser Geräte in einem anderen Prozess gesperrt sind, wodurch der Zugriff durch den neu erstellten Prozess explorer.exe verhindert wird.
  • Laufen sfc / scannow Wenn Sie einen sauberen Gesundheitsbericht erhalten, werden die von Windows geschützten Ressourcen zur Diskussion unten auf der Liste aufgeführt. Andere Ursachen sind viel wahrscheinlicher.

Die Korrekturen sind in

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

Windows-Suche

Da im Original-Screenshot der Absturz des Explorers beim Auffüllen der Listenansicht durch den Explorer angezeigt wird, blockiert der Windows-Suchdienst 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> Art services.msc> OK um die Management Console mit dem Services-Modul zu starten. Blättern Sie nach unten zur Windows-Suche, und doppelklicken Sie auf den Eintrag, um das Dialogfeld "Eigenschaften" zu öffnen. Stellen Sie sicher, dass die Einstellungen auf der Registerkarte "Wiederherstellen" mit der Abbildung unten übereinstimmen.

Das häufigste Problem ist das “Dienst neu starten nach:” Rahmen. 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 Sie es und führen Sie es aus. Es dauert etwas Zeit, um das System zu untersuchen und die Tabelle mit Daten zu füllen. Scrollen 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 zu gehen Optionen> Alle Microsoft-Erweiterungen ausblenden. Für diejenigen, die eine 64-Bit-Version von Windows verwenden, möchten Sie möglicherweise auch die 32-Bit-Erweiterungen auf dem System anzeigen, indem Sie zu gehen Optionen> 32-Bit-Shell-Erweiterungen anzeigen.

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

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

Reparieren / Neuinstallieren von VC ++ Redistributables

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

Beim Betrachten der auf meinem System installierten Programme (Systemsteuerung> Programme und Funktionen), zeigt es jede Version der weitervertreibbaren Pakete (und einige ihrer Updates) von Version 8 bis Version 12 (VC ++ 2005 bis VC ++ 2013). Ich habe sie wegen der von mir verwendeten Microsoft-Programmiertools installiert. Die meisten Benutzer werden nicht alle haben.

Sie finden die neuesten Downloads für unterstützte Versionen von Visual C ++ von Microsoft. Für unsere Zwecke brauchen Sie sich nur mit denjenigen zu beschäftigen, die als gekennzeichnet sind “weitervertreibbar” Pakete. Links, die als Service Packs klassifiziert werden, beziehen sich nicht auf die Laufzeit, sondern auf die Programmiertools. Sie benötigen nur die, die derzeit in den auf Ihrem System installierten Programmen aufgeführt sind. Das Installieren 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 des 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 der Computer ordnungsgemäß installiert wurde und nicht beschädigt wurde. Die Installer können überprüfen, ob alle Laufzeitdateien korrekt sind und alle Registrierungseinträge korrekt sind.

Wenn Sie die entsprechenden Installationsprogramme heruntergeladen haben, führen Sie sie auf dem System aus. In den 2005-Versionen werden Sie aufgefordert, eine Lizenzvereinbarung zu akzeptieren, bevor Sie das Paket erneut installieren. Alle anderen haben eine GUI, in der Sie gefragt werden, ob Sie die vorhandene Installation reparieren oder deinstallieren möchten. In den meisten Fällen werden durch eine Reparatur alle Probleme behoben.

Wenn Sie die extremsten Methoden ausprobieren möchten, können Sie die Laufzeiten deinstallieren, den Computer neu starten und dann neu installieren. Ich empfehle diese Methode bei den Laufzeiten 2005 und 2008 nicht. Ohne sie werden von Windows viele Fehler generiert, und viele Funktionen stehen Ihnen beim Neustart nicht zur Verfügung.

Fazit

Mit ein wenig Beobachtung, einem Versuch von Versuch und Irrtum und einem gewissen Verständnis dafür, wie Fehler durch die Laufzeit des Systems erzeugt werden, 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 wissen.

Erfahren Sie mehr über: Datei-Explorer, Fehlerbehebung, Windows, Windows Explorer, Windows-Suche.