Sådan rettes Windows Visual C ++ Kørselsfejl

  • Michael Cain
  • 0
  • 1401
  • 95
Reklame

Delte biblioteker i Windows gør programmeringen meget mere effektiv for programmereren, der ikke behøver at genopfinde hjulet, hver gang han har brug for at udføre en fælles opgave. De gør det også lettere at tilslutte sikkerhedshuller i den delte kode, når de findes, da det skal lappes på færre steder og kræver ikke, at enhver applikation omkompileres.

På trods af disse positive aspekter kan de udgøre deres egne problemer, når de forsøger at løse den grundlæggende årsag til fejlmeddelelser, de måtte generere.

Vores læser spørgsmål:

Hvordan fikser jeg et Windows Vista 32-bit C: \ Windows \ explorer.exe-problem på et Dell Inspiron 530?

Efter at have klikket på OK-knappen i dialogboksen, der vises på skærmbilledet, bliver skærmen mørkere og vender tilbage til normal kørsel, men det tillader mig ikke adgang til C, D og til tider E-drevet, når jeg prøver at få adgang til dem fra Min computer.

Løb sfc / scannow finder ikke nogen fejl. Jeg downloadede opdateringer fra både Dell- og Microsoft-webstederne for at løse dette problem. Jeg har også installeret Microsoft Visual C ++ 2010 omdistribuerbar pakke (x86). PC'en er helt opdateret i henhold til Windows Update.

Bruces svar:

Bemærk: Diskussioner om Windows Stifinder i Windows 7 og tidligere versioner gælder også File File i Windows 8 og senere versioner. Hvis der er en bemærkelsesværdig forskel mellem dem, vil det blive udtrykkeligt angivet.

Windows Shell

Windows Stifinder er skallen og kører som processen explorer.exe, som det ses i Task Manager eller Sysinternals 'Process Explorer Process Explorer - Den mest kraftfulde Task Manager-udskiftning [Windows] Process Explorer - Den mest kraftfulde Task Manager-udskiftning [Windows] Lad os være ærlige, Windows Task Manager er ikke så god til at forstå og styre de processer, der kører på din computer. Selv på Windows 8, hvor det er meget forbedret, kan task manager ikke komme tæt på…. Som mange andre Windows-programmer er al den funktionalitet, der leveres af shell, ikke inkorporeret i den ene eksekverbare fil. Der er snesevis af andre EXE og DLL-filer Sådan rettes manglende DLL-filfejl Sådan rettes manglende DLL-filfejl, der bruges til at implementere ejendomsark, egenskabshåndterere, forhåndsvisningshåndterere, kontekstmenuer og mange andre elementer, du bruger i Windows Stifinder hver dag.

Strækbar skal

Shell-udvidelser gør det muligt for programmerere nemt at tilføje funktionalitet til Windows Stifinder ved at skrive en DLL for at udføre opgaven og registrere DLL med operativsystemet, så Explorer ved, hvor de kan finde koden, der skal udføres opgaven. For eksempel 7-Zip Sådan udpakkes filer fra ZIP, RAR, 7z og andre fælles arkiver Sådan udpakkes filer fra ZIP, RAR, 7z og andre fælles arkiver Har du nogensinde været overfor en .rar-fil og undrede dig over, hvordan man åbner den? Heldigvis er administration af ZIP-filer og andre komprimerede arkiver enkle med de rigtige værktøjer. Her er hvad du har brug for at vide. tilføjer en undermenu til standard kontekstmenuen, der giver hurtig adgang til arkivhåndteringsopgaver, Hard Disk Sentinel Hold øje med din HDD & SSD Health Med Hard Disk Sentinel Hold øje med din HDD & SSD Health med Hard Disk Sentinel Har du nogensinde haft en drevfejl? Desværre er der ingen universalmiddel til at forhindre skader på hardware. Men at overvåge din HDD eller SSD for at handle, når deres død bliver sandsynlig, er et første skridt. tilføjer ikonoverlejringer til standarddrevikonerne, så du kan se drevs sundhedsstatus med et øjeblik, og HashTab tilføjer et nyt egenskabsark til beregning og visning af hash fra den valgte fil.

Mange af disse shell-udvidelser implementeres som COM-servere i processen. Dette betyder, at når en proces, i dette tilfælde Windows Explorer, bruger udvidelsen, vises den ikke i Task Manager eller Process Explorer som en separat kørende proces med sin egen procesidentifikator (PID). I stedet køres den inde i den opkaldende explorer.exe-proces.

Standard enkeltinstansproces

Windows Stifinder er skrevet for at være i stand til at køre som to separate processer, men - i sin standardkonfiguration - kører den kun en enkelt instans. Når den først udføres som en del af startprocessen, skaber det Windows-skrivebordsmiljøet. At udføre den igen opretter en ny tråd i den eksisterende proces, der viser det velkendte filhåndteringsvindue i stedet for at starte en ny proces.

Denne opførsel tillader et reduceret hukommelsesfodaftryk, men kan også bringe sin egen lille vending, når fejlfinding af problemer. En kritisk fejl eller uhåndteret undtagelse i kode, der udføres i explorer.exe-processen, inklusive servere i processen, der er leveret af DLL'er, får hele skrivebordsmiljøet til at gå ned med det.

I de fleste tilfælde genstartes skrivebordsprocessen automatisk. Hvis det ikke genstarter, skal du stadig være i stand til at bruge Ctrl-Shift-Esc til at hente Task Manager. Gå derfra Fil> Ny opgave (Kør ...)> type explorer.exe> ​​OK for at genstarte processen.

Dette kan undgås med en simpel ændring. Åben Windows Stifinder> Organiser> Mappe- og søgemuligheder i Vista / 7. Åbn for Windows 8 og nyere File Explorer> Vis> Valg> Skift mappe og søgemuligheder. Vælg Vis fane og tjek Start mappevinduer i en separat proces.

Ændring af denne indstilling isolerer skrivebordsprocessen fra alle de andre Windows Explorer-vinduer, du har åbent. Hvis et af disse Explorer-vinduer går ned, forbliver dit skrivebord uskadet.

Microsoft Visual C ++ Runtime Library (CRT)

Microsoft Visual C ++ Runtime Library indeholder rutiner til programmering af Windows, der automatiserer mange opgaver, såsom input / output, filmanipulation, hukommelsesallokering, systemopkald og mange andre.

Hver Windows-installation har mindst to forskellige versioner af CRT installeret. En nybygget Vista SP2 gennem Windows 10-maskine har både version 8.0 og 9.0 (henholdsvis VC 2005 og VC 2008) til stede. Når yderligere software er installeret, kan det også indeholde nyere versioner af driftstiderne, afhængigt af hvilken version af Visual C ++, der blev brugt til at oprette programmet eller en af ​​dets komponenter.

Kørselsfejl

Når der opstår en fejl eller en undtagelse i et stykke kode, håndteres det ideelt så hurtigt som muligt i den aktuelle eksekveringsprocedure og enten rettes eller tillader en yndefuld fejl. Hvis fejlen ikke håndteres lokalt, overføres den til den kode, der kaldes den aktuelt eksekverende kode, og processen fortsætter, indtil undtagelsen håndteres. Hvis den afslutter sin kørsel til toppen af ​​kæden, og den stadig ikke håndteres, genererer den en runtime-fejl som set ovenfor.

Når brugeren klikker på OK-knappen, afsluttes processen. Hvis programmet har en defineret fiasko-opførsel, såsom kritiske tjenester, eller dens kørselstilstand overvåges af en anden proces, kan det muligvis automatisk gendannes. Dette er hvad der sker i dette tilfælde. Skærmen bliver mørk, når explorer.exe-processen afsluttes, så kommer skrivebordet tilbage, når explorer.exe-processen genstartes.

Selvom fejlmeddelelsen ovenfor tydeligt angiver, at den kom fra explorer.exe-processen, er det sandsynligvis ikke et problem med explorer.exe i sig selv. Det er meget mere sandsynligt, at den skyldige ligger andre steder, såsom en tredjepartsudvidelse, der bruges af Explorer.

Andre overvejelser

Med vores læsers beskrivelse af problemet ovenfor er der et par ekstra elementer, vi skal tage højde for:

  • På tidspunktet for styrtet prøvede Explorer, men ikke, at udfylde listevisningen.
  • Manglende evne til at få adgang til drev, når skrivebordet er respawned, kan indikere, at en anden proces har en eller flere af disse enheder låst, hvilket forhindrer adgang fra den nyoprettede explorer.exe-proces.
  • Løb sfc / scannow og få en ren sundhedsregning, falder Windows-beskyttede ressourcer til bunden af ​​listen til overvejelse. Andre årsager er langt mere sandsynlige.

Rettelser findes

I dette særlige tilfælde er der tre områder, hvor jeg vil lede efter en løsning. Den første involverer Windows Search-tjenesten, den anden involverer undersøgelse af shell-udvidelser, og den sidste ville være selve VC ++ -distribuerbare.

Windows-søgning

Fordi det originale skærmbillede viser nedbruddet, der finder sted, når Explorer forsøger at udfylde listevisningen, er det muligt, at Windows-søgetjenesten blokerer adgangen til de krævede ressourcer. Jeg har set dette ske, når tjenesten går ned og ikke har de korrekte genstartparametre.

Trykke Vind + R> type services.msc> OK for at starte administrationskonsollen med servicemodulet. Rul ned til Windows-søgning og dobbeltklik på posten for at åbne dialogboksen Egenskaber. Sørg for, at indstillingerne på fanen Gendannelse stemmer overens med billedet herunder.

Det mest almindelige problem er “Genstart service efter:” indstilling. Denne fejl opstår ofte, når denne indstilling ikke er nul.

Problematiske Shell Extensions

Download Nirsofts ShellExView til din systemarkitektur (x86 eller x64), installer og kør den. Det vil tage lidt tid at undersøge systemet og udfylde tabellen med data. Rul over til kolonnen CLSID modificeret tid og klik på overskriften for at sortere på dette felt. Hvis du ønsker at ekskludere de moduler, der er leveret af Microsoft, kan du gå til Valg> Skjul alle Microsoft-udvidelser. For dem, der bruger en 64-bit-version af Windows, kan du muligvis også vise 32-bit-udvidelserne på systemet ved at gå til Valg> Vis 32-bit Shell Extensions.

Se efter udvidelser, der blev tilføjet lige før symptomerne begyndte. Vælg en eller flere, og tryk på F7 eller gå til Fil> Deaktiver valgte emner, eller klik på det røde LED-ikon på værktøjslinjen. Ideelt set bør dette gøres én ad gangen.

Test for at se, om symptomerne vedvarer. Hvis de gør det, kan du aktivere de (n) tidligere deaktiverede udvidelse igen ved hjælp af F8, Fil> Aktiver valgte elementer, eller det grønne LED-værktøjslinjeikon. Fra her skal du deaktivere en anden udvidelse og gentage testprocessen, indtil du finder den, der forårsager problemet.

Reparer / geninstaller VC ++ Redistributables

Jeg bruger denne som en sidste udvej, hvis der kun er et program, der sparker fejl. Hvis du har flere programmer, der har problemer med VC ++ runtime-fejl, kan du prøve dette først.

Når jeg ser på de installerede programmer på mit system (Kontrolpanel> Programmer og funktioner), viser den hver version af de omdistribuerbare pakker (og nogle af deres opdateringer) lige fra version 8 til version 12 (VC ++ 2005 til VC ++ 2013). Jeg har dem installeret på grund af de Microsoft programmeringsværktøjer, jeg bruger. De fleste brugere har ikke alle disse.

Du kan finde de nyeste downloads til understøttede versioner af Visual C ++ fra Microsoft. Til vores formål her behøver du kun at være bekymret for dem, der er mærket som “videredistribution” pakker. Links, der er klassificeret som servicepakker, er til programmeringsværktøjerne, ikke bare rundtidene. Du har kun brug for dem, der i øjeblikket er anført i de installerede programmer på dit system. Installation af andre versioner hjælper ikke i dette tilfælde. Brugere af 64-bit operativsystemer har muligvis brug for både x86- og x64-versionerne af CRT.

Windows Update kontrollerer, om din computer har de nyeste opdateringer til disse pakker installeret, men det kontrollerer ikke for at sikre, at den er korrekt installeret og ikke er ødelagt. Installatørerne kan kontrollere, at alle runtime-filer er de rigtige, og at alle poster i registreringsdatabasen er korrekte.

Når du har downloadet de relevante installationsprogrammer, skal du køre dem på systemet. 2005-versionerne vil bede dig om at acceptere en licensaftale, før du geninstallerer pakken. Alle de andre har en GUI, der spørger dig, om du vil reparere eller afinstallere den eksisterende installation. I de fleste tilfælde løser en reparation eventuelle problemer.

Hvis du vil prøve den mest ekstreme metode, kan du afinstallere driftstiderne, genstarte maskinen og derefter geninstallere dem. Jeg anbefaler ikke denne metode med driftstiderne 2005 og 2008. Uden dem vil Windows generere en masse fejl, og en hel del funktionalitet vil ikke være der for dig, når du genstarter.

Konklusion

Med en lille smule observation, et strejf af prøve og fejl og en vis forståelse af, hvordan der genereres fejl fra driftstider på systemet, kan softwareproblemer findes og løses uden at ty til komplicerede fejlfindingsværktøjer og logfiler.

Har du fundet runtime-fejl på dit system? Hvad blev der krævet for at løse dem? Fortæl mig det i kommentarerne herunder.




Endnu ingen kommentarer

Om moderne teknologi, enkel og overkommelig.
Din guide i en verden af moderne teknologi. Lær hvordan du bruger de teknologier og gadgets, der omgiver os hver dag, og lær, hvordan du finder interessante ting på Internettet.