Comment réparer les erreurs d'exécution Windows Visual C ++

Les erreurs Visual C ++ sont un problème courant pour les utilisateurs Windows. Mais savez-vous comment les réparer?

Les erreurs Visual C ++ sont un problème courant pour les utilisateurs Windows.  Mais savez-vous comment les réparer?
Publicité

Les bibliothèques partagées dans Windows rendent la programmation beaucoup plus efficace pour le programmeur qui n'a pas besoin de réinventer la roue chaque fois qu'il doit effectuer une tâche commune. Ils facilitent également la détection de trous de sécurité dans le code partagé lorsqu'ils sont détectés, car ils doivent être corrigés dans moins d'endroits et ne requièrent pas que chaque application soit recompilée.

Malgré ces aspects positifs, ils peuvent poser leurs propres problèmes lorsqu'ils essaient de résoudre la cause première des messages d'erreur qu'ils peuvent générer.

La question de notre lecteur:

Comment réparer un problème de Windows Vista 32 bits C: \ Windows \ explorer.exe sur un Dell Inspiron 530?

Après avoir cliqué sur le bouton OK dans la boîte de dialogue montrée dans la capture d'écran, l'écran noircira et retournera à la marche normale, mais il ne me permettra pas d'accéder au C, D et, parfois, au lecteur E en essayant d'y accéder à partir de mon ordinateur.

L'exécution de sfc / scannow ne trouve aucune erreur. J'ai téléchargé des mises à jour des sites Web de Dell et de Microsoft pour tenter de résoudre ce problème. J'ai également installé le package redistribuable Microsoft Visual C ++ 2010 (x86). Le PC est complètement à jour selon Windows Update.

erreur d'exécution

Réponse de Bruce:

Remarque: Les discussions sur Windows Explorer dans Windows 7 et les versions antérieures s'appliquent également à l'Explorateur de fichiers dans Windows 8 et versions ultérieures. S'il y a une différence notable entre eux, cela sera explicitement indiqué.

Le shell Windows

Windows Explorer est le shell et s'exécute comme le processus explorer.exe comme vu dans le Gestionnaire des tâches ou Process Explorer de Sysinternals Process Explorer - Le remplacement le plus puissant du Gestionnaire des tâches [Windows] Process Explorer - Le remplacement le plus puissant du gestionnaire des tâches [Windows] Soyons honnêtes, le Gestionnaire des tâches Windows n'est pas idéal pour comprendre et gérer les processus en cours sur votre ordinateur. Même sur Windows 8, où il est beaucoup amélioré, le gestionnaire de tâches ne peut pas se rapprocher de la ... Lire la suite. Comme de nombreux autres programmes Windows, toutes les fonctionnalités fournies par le shell ne sont pas intégrées dans ce fichier exécutable unique. Il existe des dizaines d'autres fichiers EXE et DLL Comment réparer les erreurs de fichier DLL manquant journée.

Shell extensible

Les extensions shell permettent aux programmeurs d'ajouter facilement des fonctionnalités à l'Explorateur Windows en écrivant une DLL pour effectuer la tâche et en enregistrant la DLL avec le système d'exploitation, afin qu'Explorer sache où trouver le code pour accomplir la tâche. Par exemple, 7-Zip Comment extraire des fichiers de ZIP, RAR, 7z et autres archives communes Comment extraire des fichiers de ZIP, RAR, 7z et d'autres archives communes Avez-vous déjà été confronté à un fichier .rar et demandé comment l'ouvrir? Heureusement, la gestion des fichiers ZIP et d'autres archives compressées est simple avec les bons outils. Voici ce que vous devez savoir. Read More ajoute un sous-menu au menu contextuel standard, donnant un accès rapide aux tâches de gestion des archives, Hard Disk Sentinel Gardez un œil sur votre disque dur & SSD Santé avec disque dur Sentinel Gardez un oeil sur votre disque dur & SSD Santé avec disque dur Sentinel Avez-vous déjà eu une panne de disque? Malheureusement, il n'y a pas de panacée pour prévenir les dommages matériels. Mais surveiller votre disque dur ou SSD, pour agir quand leur mort devient probable, est un premier pas. En savoir plus ajoute l'icône qui se superpose aux icônes de lecteur standard, afin que vous puissiez voir l'état d'intégrité du lecteur en un coup d'œil, et HashTab ajoute une nouvelle feuille de propriétés pour calculer et afficher les hachages du fichier sélectionné.

menu contextuel

La plupart de ces extensions shell sont implémentées en tant que serveurs COM (Component Object Model) in-process. Cela signifie que lorsqu'un processus, dans ce cas Windows Explorer, utilise l'extension, il n'apparaîtra pas dans le Gestionnaire des tâches ou dans l'Explorateur de processus en tant que processus en cours distinct avec son propre identificateur de processus (PID). Au lieu de cela, il s'exécute dans le processus appelant explorer.exe.

Processus par instance unique par défaut

Windows Explorer est écrit pour être capable de fonctionner en deux processus distincts, mais - dans sa configuration par défaut - il n'exécutera qu'une seule instance. Lorsqu'il est exécuté pour la première fois dans le cadre du processus de démarrage, il crée l'environnement de bureau Windows. L'exécuter à nouveau crée un nouveau thread dans le processus existant, qui affiche la fenêtre de gestion de fichiers familière, au lieu de démarrer un nouveau processus.

Ce comportement permet une empreinte mémoire réduite, mais peut également apporter sa propre petite torsion lors de la résolution des problèmes. Une erreur critique ou une exception non gérée dans le code en cours d'exécution dans le processus explorer.exe, y compris les serveurs in-process fournis par les DLL, provoquera l'arrêt complet de l'environnement de bureau.

Dans la plupart des cas, le processus de bureau sera automatiquement redémarré. S'il ne redémarre pas, vous devriez toujours pouvoir utiliser Ctrl-Shift-Esc pour afficher le Gestionnaire des tâches. De là, allez dans Fichier> Nouvelle tâche (Exécuter ...)> tapez explorer.exe> ​​OK pour redémarrer le processus.

Cela peut être évité avec un simple changement. Ouvrez l' Explorateur Windows> Organiser> Dossier et les options de recherche dans Vista / 7. Pour Windows 8 et versions ultérieures, ouvrez l' Explorateur de fichiers> Affichage> Options> Modifier le dossier et les options de recherche . Sélectionnez l' onglet Affichage et cochez la case Lancer les fenêtres de dossier dans un processus séparé .

options de dossier

La modification de ce paramètre isole votre processus de bureau de toutes les autres fenêtres Windows Explorer ouvertes. Si l'une de ces fenêtres Explorer tombe en panne, votre bureau restera indemne.

Microsoft Visual C ++ Runtime Library (CRT)

La bibliothèque d'exécution Microsoft Visual C ++ fournit des routines pour la programmation de Windows qui automatisent de nombreuses tâches, telles que l'entrée / sortie, la manipulation de fichiers, l'allocation de mémoire, les appels système et bien d'autres.

Chaque installation Windows aura au moins deux versions différentes du CRT installé. Une machine Vista SP2 à travers Windows 10 nouvellement construite aura à la fois la version 8.0 et 9.0 (VC 2005 et VC 2008, respectivement) présents. Lorsqu'un logiciel supplémentaire est installé, il peut également inclure des versions plus récentes des runtimes, en fonction de la version de Visual C ++ utilisée pour créer le programme ou l'un de ses composants.

Erreurs d'exécution

Lorsqu'une erreur ou une exception est rencontrée dans un morceau de code, idéalement, il sera traité dès que possible dans la procédure en cours d'exécution, et soit corrigé ou permettre une défaillance gracieuse. Si l'erreur n'est pas gérée localement, elle est transmise au code qui a appelé le code en cours d'exécution et le processus continue jusqu'à ce que l'exception soit gérée. Si elle termine son exécution en haut de la chaîne et qu'elle n'est toujours pas gérée, elle générera une erreur d'exécution comme indiqué ci-dessus.

Lorsque l'utilisateur clique sur le bouton OK, le processus sera terminé. Si le programme a un comportement de défaillance défini, tel que des services critiques, ou si son état d'exécution est surveillé par un autre processus, il peut être automatiquement réorganisé. C'est ce qui se passe dans ce cas. L'écran s'éteint lorsque le processus explorer.exe est terminé, puis le bureau revient lorsque le processus explorer.exe est redémarré.

Bien que le message d'erreur ci-dessus indique clairement qu'il provient du processus explorer.exe, il ne risque pas d'être un problème avec explorer.exe lui-même. Il est beaucoup plus probable que le coupable se trouve ailleurs, comme une extension tierce utilisée par Explorer.

autres considérations

Avec notre description du problème ci-dessus, nous devons prendre en compte quelques éléments supplémentaires:

  • Au moment du crash, Explorer essayait, mais était incapable de remplir la liste.
  • L'impossibilité d'accéder aux lecteurs après la régénération du bureau peut indiquer qu'un autre processus a verrouillé un ou plusieurs de ces périphériques, empêchant ainsi l'accès au processus explorer.exe nouvellement créé.
  • L'exécution de sfc / scannow et l'obtention d'un bon état de santé font tomber les ressources protégées de Windows au bas de la liste. D'autres causes sont beaucoup plus probables.

Les corrections sont en

Dans ce cas particulier, il y a trois domaines dans lesquels je chercherais une solution. La première implique le service Windows Search, la seconde implique l'étude des extensions shell, et la dernière serait les redistribuables VC ++ eux-mêmes.

Windows Recherche

Étant donné que la capture d'écran d'origine montre l'incident se produisant lorsque l'Explorateur tente de remplir la liste, il est possible que le service Windows Search bloque l'accès aux ressources requises. J'ai vu cela se produire lorsque le service se bloque et n'a pas les bons paramètres de redémarrage.

Appuyez sur Win + R> tapez services.msc> OK pour démarrer la console de gestion avec le module de services. Faites défiler jusqu'à Windows Search et double-cliquez sur l'entrée pour ouvrir la boîte de dialogue Propriétés. Assurez-vous que les paramètres de l'onglet Récupération correspondent à l'image ci-dessous.

windows-search-properties

Le problème le plus courant est le paramètre "Redémarrer le service après:". Cette erreur se produit fréquemment lorsque ce paramètre est différent de zéro.

Extensions Shell problématiques

Téléchargez ShellExView de Nirsoft pour l'architecture de votre système (x86 ou x64), installez-le et exécutez-le. Il faudra un peu de temps pour examiner le système et remplir le tableau de données. Faites défiler jusqu'à la colonne CLSID Modified Time et cliquez sur l'en-tête pour trier sur ce champ. Si vous souhaitez exclure les modules fournis par Microsoft, vous pouvez accéder à Options> Masquer toutes les extensions Microsoft . Pour ceux qui utilisent une version 64 bits de Windows, vous pouvez également afficher les extensions 32 bits sur le système en accédant à Options> Afficher les extensions de shell 32 bits .

Recherchez les extensions qui ont été ajoutées juste avant le début des symptômes. Sélectionnez un ou plusieurs et appuyez sur F7 ou allez dans Fichier> Désactiver les éléments sélectionnés, ou cliquez sur l'icône LED rouge dans la barre d'outils. Idéalement, cela devrait être fait un à la fois.

Testez pour voir si les symptômes persistent. Si c'est le cas, vous pouvez réactiver le (s) poste (s) précédemment désactivé (s) en utilisant F8, Fichier> Activer les éléments sélectionnés, ou l'icône de la barre d'outils LED verte. De là, désactivez une extension différente et répétez le processus de test jusqu'à ce que vous trouviez celui qui cause le problème.

Réparer / Réinstaller les redistribuables VC ++

J'utilise celui-ci en dernier recours, si un seul programme supprime les erreurs. Si vous avez plusieurs programmes qui ont des problèmes avec les erreurs d'exécution de VC ++, vous pouvez essayer ceci en premier.

Lorsque je regarde les programmes installés sur mon système ( Panneau de configuration> Programmes et fonctionnalités ), il montre chaque version des paquets redistribuables (et certaines de leurs mises à jour) allant de la version 8 à la version 12 (VC ++ 2005 à VC ++ 2013). Je les ai installés à cause des outils de programmation Microsoft que j'utilise. La plupart des utilisateurs n'auront pas tous ces éléments.

installé-vcpp-redist

Vous pouvez trouver les derniers téléchargements pour les versions prises en charge de Visual C ++ de Microsoft. Pour notre propos ici, vous devez seulement vous préoccuper de ceux qui sont étiquetés comme des paquets «redistribuables». Les liens qui sont classés en tant que service packs sont pour les outils de programmation, pas simplement les runtimes. Vous n'aurez besoin que de ceux qui sont actuellement répertoriés dans les programmes installés sur votre système. L'installation d'autres versions n'aidera pas dans ce cas. Les utilisateurs de systèmes d'exploitation 64 bits peuvent avoir besoin des versions x86 et x64 du CRT.

Windows Update vérifie si les mises à jour les plus récentes de ces packages sont installées sur votre ordinateur, mais ne vérifie pas qu'elles sont correctement installées et qu'elles n'ont pas été endommagées. Les installateurs peuvent vérifier que tous les fichiers d'exécution sont corrects et que toutes les entrées de registre sont correctes.

Une fois que vous avez téléchargé les programmes d'installation appropriés, exécutez-les sur le système. Les versions de 2005 vous inviteront à accepter un contrat de licence avant de réinstaller le package. Tous les autres ont une interface graphique qui vous demandera si vous voulez réparer ou désinstaller l'installation existante. Dans la plupart des cas, une opération de réparation permettra de résoudre tous les problèmes.

Si vous voulez essayer la méthode la plus extrême, vous pouvez désinstaller les runtimes, redémarrer l'ordinateur, puis les réinstaller. Je ne recommande pas cette méthode avec les runtimes 2005 et 2008. Sans eux, Windows générera beaucoup d'erreurs et une grande quantité de fonctionnalités ne sera pas là pour vous lorsque vous redémarrerez.

Conclusion

Avec un peu d'observation, une touche d'essai et d'erreur, et une certaine compréhension de la façon dont les erreurs sont générées à partir des runtimes sur le système, les problèmes logiciels peuvent être trouvés et résolus sans recourir à des outils de débogage compliqués.

Avez-vous rencontré des erreurs d'exécution sur votre système? Qu'est-ce qui était nécessaire pour les résoudre? Faites-moi savoir dans les commentaires ci-dessous.

In this article