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

  • Gabriel Brooks
  • 0
  • 2437
  • 581
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 des failles de sécurité dans le code partagé, car celui-ci doit être corrigé dans moins d'emplacements et ne nécessite pas la recompilation de toutes les applications..

Malgré ces aspects positifs, ils peuvent poser leurs propres problèmes lorsqu'ils tentent 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 C: \ Windows \ explorer.exe sous Windows Vista 32 bits sur un Dell Inspiron 530?

Après avoir cliqué sur le bouton OK dans la boîte de dialogue illustrée sur la capture d'écran, l'écran s'assombrit et reprend son fonctionnement normal, mais il ne me permet pas d'accéder aux lecteurs C, D et, parfois, au lecteur E lorsque vous essayez d'y accéder. depuis mon ordinateur.

Fonctionnement sfc / scannow ne trouve aucune erreur. J'ai téléchargé des mises à jour des sites Web Dell et 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.

Réponse de Bruce:

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

Le shell Windows

Windows Explorer est le shell et s'exécute en tant que processus explorer.exe, comme indiqué dans le Gestionnaire des tâches ou l'Explorateur de processus de Sysinternals - Le remplacement du gestionnaire de tâches le plus puissant [Windows] Explorateur de processus - Le remplacement du gestionnaire de tâches le plus puissant [Windows] Soyons honnêtes, le Windows Le Gestionnaire des tâches n'est pas très bon pour comprendre et gérer les processus en cours d'exécution sur votre ordinateur. Même sous Windows 8, où il a beaucoup évolué, le gestionnaire de tâches ne peut s'approcher de la…. Comme beaucoup d'autres programmes Windows, toutes les fonctionnalités fournies par le shell ne sont pas incorporé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 manquantes. Comment résoudre les erreurs de fichier DLL manquantes utilisées pour la mise en oeuvre de feuilles de propriétés, de gestionnaires de propriétés, de gestionnaires de prévisualisation, de menus contextuels et de nombreux autres éléments utilisés quotidiennement dans l'Explorateur Windows..

Shell extensible

Les extensions de shell permettent aux programmeurs d’ajouter facilement des fonctionnalités à l’explorateur Windows en écrivant une DLL pour effectuer la tâche et en l’enregistrant avec le système d’exploitation. Ainsi, Explorer sait où trouver le code pour accomplir la tâche. Par exemple, 7-Zip Comment extraire des fichiers de ZIP, RAR, 7z et d’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 vous êtes vous demandé comment l’ouvrir? Heureusement, gérer les fichiers ZIP et autres archives compressées est simple avec les bons outils. Voici ce que vous devez savoir. ajoute un sous-menu au menu contextuel standard, donnant un accès rapide aux tâches de traitement des archives, Hard Disk Sentinel Gardez un œil sur la santé de votre disque dur et SSD avec Hard Disk Sentinel Gardez un œil sur votre santé disque dur et SSD avec Hard Disk 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 votre disque dur SSD, afin d’agir lorsque leur mort est probable, est une première étape. ajoute des superpositions d'icônes aux icônes de lecteur standard, afin que vous puissiez voir l'état de santé 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é..

Un grand nombre de ces extensions de shell sont implémentées en tant que serveurs COM (Component Object Model) en cours de traitement. Cela signifie que lorsqu'un processus, dans ce cas l'Explorateur Windows, utilise l'extension, celle-ci n'apparaîtra pas dans le Gestionnaire des tâches ni dans l'Explorateur de processus en tant que processus en cours d'exécution avec son propre identifiant de processus (PID). Au lieu de cela, il s'exécute dans le processus appelant explorer.exe.

Processus d'instance unique par défaut

L'Explorateur Windows est conçu pour pouvoir s'exécuter en tant que processus distincts mais, dans sa configuration par défaut, il ne s'exécutera que par 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 de réduire l'encombrement de la mémoire, mais peut également apporter sa propre petite modification lors de la résolution de 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, entraînera la panne de l'ensemble 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-Maj-Échap pour afficher le gestionnaire de tâches. De là, allez à Fichier> Nouvelle tâche (Exécuter…)> type explorer.exe> ​​OK pour relancer le processus.

Cela peut être évité avec un simple changement. Ouvrir Explorateur Windows> Organiser> Options des dossiers et de recherche dans Vista / 7. Pour Windows 8 et versions ultérieures, ouvrez Explorateur de fichiers> Afficher> Options> Modifier le dossier et les options de recherche. Sélectionnez le Onglet Affichage et vérifie Lancer les fenêtres de dossiers dans un processus séparé.

La modification de ce paramètre isole le processus de votre bureau de toutes les autres fenêtres de l'Explorateur Windows que vous avez ouvertes. Si l'une de ces fenêtres Explorer se bloque, votre bureau reste indemne..

Bibliothèque d'exécution Microsoft Visual C ++ (CRT)

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

Chaque installation Windows aura au moins deux versions différentes du tube cathodique installé. Les versions 8.0 et 9.0 (VC 2005 et VC 2008, respectivement) des nouvelles versions de Vista SP2 à Windows 10 seront disponibles. Lorsqu'un logiciel supplémentaire est installé, il peut également inclure des versions plus récentes des environnements d'exécution, selon 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, elle sera traitée dès que possible dans la procédure en cours d'exécution, et soit corrigée, soit autorisant un échec normal. 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 se poursuit jusqu'à ce que l'exception soit gérée. S'il termine sa course en haut de la chaîne et qu'il n'est toujours pas géré, il générera une erreur d'exécution, comme indiqué ci-dessus..

Lorsque l'utilisateur clique sur le bouton OK, le processus est terminé. Si le programme a un comportement d'échec défini, tel que des services critiques, ou que son état d'exécution est surveillé par un autre processus, il peut être automatiquement réapparu. 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 est peu probable qu'il s'agisse d'un problème avec explorer.exe lui-même. Il est beaucoup plus probable que le coupable se trouve ailleurs, par exemple une extension tierce utilisée par Explorer.

autres considérations

Avec la description de la question ci-dessus par notre lecteur, il convient de 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éapparition du poste de travail peut indiquer qu’un ou plusieurs de ces périphériques sont verrouillés dans un autre processus, ce qui empêche tout accès depuis le processus explorer.exe récemment créé..
  • Fonctionnement sfc / scannow et pour obtenir une déclaration d'intégrité propre, les ressources protégées par Windows sont placées au bas de la liste pour examen. D'autres causes sont beaucoup plus probables.

Les correctifs sont en

Dans ce cas particulier, je rechercherais une solution dans trois domaines. Le premier concerne le service Windows Search, le second consiste à rechercher les extensions du shell et le dernier concerne les redistribuables VC ++ eux-mêmes..

Recherche Windows

Étant donné que la capture d'écran d'origine montre le blocage survenant lorsque Explorer 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 que les paramètres de redémarrage ne sont pas corrects..

presse Win + R> type 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..

Le problème le plus courant est le “Redémarrer le service après:” réglage. 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 votre architecture système (x86 ou x64), installez-le et lancez-le. Il faudra un peu de temps pour examiner le système et remplir le tableau avec des données. Faites défiler jusqu'à la colonne CLSID Modified Time et cliquez sur l'en-tête pour trier ce champ. Si vous souhaitez exclure les modules fournis par Microsoft, vous pouvez aller à Options> Masquer toutes les extensions Microsoft. Pour ceux qui utilisent une version 64 bits de Windows, vous pouvez également montrer les extensions 32 bits du système en allant à 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 aller à Fichier> Désactiver les éléments sélectionnés, ou cliquez sur l'icône du voyant rouge dans la barre d'outils. Idéalement, cela devrait être fait un à la fois.

Testez pour voir si les symptômes persistent. Si tel est le cas, vous pouvez réactiver les extensions précédemment désactivées à l’aide de F8, Fichier> Activer les éléments sélectionnés, ou l'icône de la barre d'outils DEL verte. À partir de là, désactivez une autre extension et répétez le processus de test jusqu'à ce que vous trouviez celle à l'origine du 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 rencontrent des problèmes avec les erreurs d’exécution de VC ++, vous voudrez peut-être essayer ceci en premier..

Lorsque je regarde les programmes installés sur mon système (Panneau de configuration> Programmes et fonctionnalités), il présente toutes les versions des packages redistribuables (et certaines de leurs mises à jour), 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.

Vous pouvez trouver les derniers téléchargements pour les versions prises en charge de Visual C ++ de Microsoft. Pour les besoins de notre propos, vous devez uniquement vous intéresser à ceux qui sont étiquetés comme “redistribuable” paquets. Les liens classés en tant que service packs sont destinés aux outils de programmation, pas simplement aux runtimes. Vous n'aurez besoin que de ceux qui figurent actuellement dans les programmes installés sur votre système. L'installation d'autres versions ne va pas aider dans ce cas. Les utilisateurs de systèmes d'exploitation 64 bits peuvent avoir besoin des versions à la fois x86 et x64 du CRT..

Windows Update vérifie si les dernières mises à jour de ces packages ont été installées sur votre ordinateur, mais pas pour s'assurer qu'il est correctement installé et qu'il n'a pas été cassé. 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 2005 vous demanderont d’accepter un contrat de licence avant de réinstaller le package. Tous les autres ont une interface graphique qui vous demandera si vous souhaitez réparer ou désinstaller l'installation existante. Dans la plupart des cas, une opération de réparation résoudra tous les problèmes..

Si vous voulez essayer la méthode la plus extrême, vous pouvez désinstaller les runtimes, redémarrer la machine, puis les réinstaller. Je ne recommande pas cette méthode pour les exécutions 2005 et 2008. Sans eux, Windows générera de nombreuses erreurs et de nombreuses fonctionnalités ne seront pas à votre disposition lors du redémarrage..

Conclusion

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

Avez-vous rencontré des erreurs d'exécution sur votre système? Que fallait-il pour les résoudre? Faites-moi savoir dans les commentaires ci-dessous.




Personne n'a encore commenté ce post.

De la technologie moderne, simple et abordable.
Votre guide dans le monde de la technologie moderne. Apprenez à utiliser les technologies et les gadgets qui nous entourent chaque jour et à découvrir des choses intéressantes sur Internet.