Ako opraviť chyby za behu systému Windows Visual C ++

Ako opraviť chyby za behu systému Windows Visual C ++

Zdieľané knižnice v systéme Windows robia programovanie oveľa efektívnejším pre programátora, ktorý nepotrebuje znova objavovať koleso zakaždým, keď potrebuje vykonať spoločnú úlohu. Tiež uľahčujú zapojenie bezpečnostných dier do zdieľaného kódu, keď sú nájdené, pretože je potrebné ich opraviť na menšom počte miest a nevyžaduje opätovnú kompiláciu každej aplikácie.





Napriek týmto pozitívnym aspektom si môžu pri pokuse o riešenie základnej príčiny chybových hlásení, ktoré môžu generovať, spôsobiť svoje vlastné problémy.





Otázka nášho čitateľa:

Ako opravím problém so systémom Windows Vista 32-bit C: Windows explorer.exe na počítači Dell Inspiron 530?





Po kliknutí na tlačidlo OK v dialógovom okne zobrazenom na snímke obrazovky sa obrazovka stmavne a vráti sa do normálneho chodu, ale pri pokuse o prístup k nim mi nedovolí prístup k jednotkám C, D a niekedy aj k jednotke E. z tohto počítača.

Beh sfc /scannow nenachádza žiadne chyby. Stiahol som si aktualizácie z webových stránok Dell a Microsoft a pokúšal som sa tento problém vyriešiť. Tiež som nainštaloval redistribuovateľný balík Microsoft Visual C ++ 2010 (x86). Podľa Windows Update je počítač úplne aktuálny.



Bruceova odpoveď:

Poznámka: Diskusie o programe Windows Prieskumník v systéme Windows 7 a starších verziách sa vzťahujú aj na Prieskumník súborov v systéme Windows 8 a novších verziách. Ak je medzi nimi výrazný rozdiel, bude to výslovne uvedené.

Windows Shell

Prieskumník systému Windows je shell a beží ako proces explorer.exe, ako je vidieť v Správcovi úloh alebo Explorer programu Sysinternals. Rovnako ako mnoho iných programov Windows, všetky funkcie poskytované shellom nie sú zahrnuté do jedného spustiteľného súboru. Existuje niekoľko ďalších súborov EXE a DLL, ktoré sa používajú na implementáciu hárkov vlastností, ovládačov vlastností, obsluh ukážok, kontextových ponúk a mnohých ďalších prvkov, ktoré v Prieskumníkovi Windows používate každý deň.





Rozšíriteľná škrupina

Rozšírenia shellu umožňujú programátorom jednoducho pridať funkcie do programu Windows Explorer napísaním knižnice DLL na vykonanie úlohy a registráciou knižnice DLL v operačnom systéme, aby Explorer vedel, kde nájsť kód na splnenie úlohy. Napríklad, 7-zips pridáva do štandardnej kontextovej ponuky podponuku, ktorá poskytuje rýchly prístup k úlohám spracovania archívov, pevný disk Sentinel pridáva k ikonám štandardných jednotiek prekrytia ikonami, takže môžete na prvý pohľad vidieť stav disku a HashTab pridá nový hárok vlastností na výpočet a zobrazenie hash vybratého súboru.

Mnoho z týchto rozšírení shellu je implementovaných ako servery COM (Process Object Component Object Model) v procese. To znamená, že keď proces, v tomto prípade Prieskumník Windows, používa rozšírenie, nezobrazí sa v Správcovi úloh alebo Prieskumníkovi ako samostatný spustený proces s vlastným identifikátorom procesu (PID). Namiesto toho sa vykonáva vo vnútri procesu explorer.exe.





Predvolený proces jednej inštancie

Prieskumník Windows je napísaný tak, aby mohol bežať ako dva samostatné procesy, ale - vo svojej predvolenej konfigurácii - spustí iba jednu inštanciu. Keď je prvýkrát spustený ako súčasť procesu spustenia, vytvorí desktopové prostredie Windows. Opätovné spustenie vytvorí nové vlákno v existujúcom procese, ktorý namiesto spustenia nového procesu zobrazí známe okno správy súborov.

Toto správanie umožňuje obmedzenie pamäte, ale môže tiež priniesť malý zvrat pri riešení problémov. Kritická chyba alebo neošetrená výnimka v kóde vykonávanom v procese explorer.exe, vrátane serverov v procese poskytovaných knižnicami DLL, spôsobí, že sa s ním zničí celé prostredie pracovnej plochy.

Vo väčšine prípadov sa proces pracovnej plochy automaticky reštartuje. Ak sa nerestartuje, mali by ste byť stále schopní použiť Ctrl-Shift-Esc na vyvolanie Správcu úloh. Odtiaľ choďte na Súbor> Nová úloha (Spustiť ...)> typ explorer.exe> ​​OK reštartujte proces.

Tomu sa dá vyhnúť jednoduchou zmenou. Otvorené Prieskumník Windows> Usporiadať> Možnosti priečinka a vyhľadávania vo Vista/7. V systéme Windows 8 a novších otvorte Prieskumník> Zobraziť> Možnosti> Zmeniť možnosti priečinka a vyhľadávania . Vyberte položku Karta Zobraziť a skontrolovať Spustite okná priečinkov v samostatnom procese .

najlepšie miesto na nákup použitých počítačov Mac

Zmena tohto nastavenia izoluje váš proces pracovnej plochy od všetkých ostatných okien programu Windows Explorer, ktoré máte otvorené. Ak dôjde k zlyhaniu niektorého z týchto okien Prieskumníka, zostane vaša pracovná plocha bez poškodenia.

Runtime knižnica Microsoft Visual C ++ (CRT)

Runtime knižnica Microsoft Visual C ++ poskytuje rutiny na programovanie systému Windows, ktoré automatizujú mnoho úloh, ako sú vstup/výstup, manipulácia so súbormi, prideľovanie pamäte, systémové volania a mnohé ďalšie.

Každá inštalácia systému Windows bude mať nainštalované najmenej dve rôzne verzie CRT. Čerstvo postavený počítač Vista SP2 prostredníctvom systému Windows 10 bude mať verziu 8.0 aj 9.0 (VC 2005, respektíve VC 2008). Keď je nainštalovaný ďalší softvér, môže zahŕňať aj novšie verzie runtime, v závislosti od toho, ktorá verzia programu Visual C ++ bola použitá na vytvorenie programu alebo akýchkoľvek jeho súčastí.

Chyby runtime

Keď sa v kúsku kódu vyskytne chyba alebo výnimka, v ideálnom prípade to bude vyriešené čo najskôr v rámci aktuálne vykonávaného postupu a bude buď opravené, alebo umožní ladné zlyhanie. Ak nie je chyba spracovaná lokálne, bude prenesená do kódu, ktorý volal aktuálne vykonávajúci kód, a proces pokračuje, kým nie je spracovaná výnimka. Ak dokončí svoj beh do hornej časti reťazca a stále nie je spracovaný, vygeneruje chybu za behu, ako je uvedené vyššie.

Keď používateľ klikne na tlačidlo OK, proces sa zastaví. Ak má program definované chybové správanie, napríklad kritické služby, alebo je jeho priebeh monitorovaný iným procesom, môže sa automaticky obnoviť. To sa deje v tomto prípade. Po ukončení procesu explorer.exe obrazovka zhasne, potom sa po reštartovaní programu explorer.exe vráti pracovná plocha.

Aj keď vyššie uvedené chybové hlásenie jasne naznačuje, že pochádza z procesu explorer.exe, pravdepodobne nejde o problém so samotným programom explorer.exe. Je oveľa pravdepodobnejšie, že vinník leží inde, napríklad v rozšírení tretej strany, ktoré používa Explorer.

Ďalšie úvahy

Pri vyššie uvedenom popise problému naším čitateľom je potrebné vziať do úvahy niekoľko ďalších položiek:

  • V čase havárie sa Explorer pokúšal, ale nedokázal vyplniť zoznam.
  • Neschopnosť získať prístup k jednotkám po tom, ako sa plocha respawnuje, môže znamenať, že iný proces má jedno alebo viac z týchto zariadení uzamknutých, čo znemožňuje prístup z novovytvoreného procesu explorer.exe.
  • Beh sfc /scannow a získaním dobrého zdravotného stavu presunie zdroje chránené systémom Windows na koniec zoznamu na zváženie. Ostatné príčiny sú oveľa pravdepodobnejšie.

Opravy sú v

V tomto konkrétnom prípade existujú tri oblasti, kde by som hľadal riešenie. Prvý zahŕňa službu Windows Search, druhý zahŕňa skúmanie rozšírení shellu a posledným by boli samotné redistribuovateľné súbory VC ++.

Pretože pôvodný obrázok obrazovky zobrazuje zlyhanie, keď sa Explorer pokúša naplniť zobrazenie zoznamu, je možné, že služba Windows Search blokuje prístup k požadovaným zdrojom. Videl som, že sa to stane, keď služba zlyhá a nemá správne parametre reštartu.

Stlačte Win+R> typ services.msc> OK spustite konzolu pre správu pomocou modulu služieb. Prejdite nadol na položku Windows Search a dvojitým kliknutím na položku otvorte dialógové okno Vlastnosti. Zaistite, aby nastavenia na karte Obnovenie zodpovedali obrázku nižšie.

Najčastejším problémom je nastavenie „Reštartovať službu po:“. K tejto chybe často dochádza, keď je toto nastavenie nenulové.

Problematické rozšírenia škrupiny

Stiahnuť ▼ Nirsoft's ShellExView pre architektúru vášho systému (x86 alebo x64), nainštalujte ho a spustite. Preskúmanie systému a vyplnenie tabuľky údajmi bude chvíľu trvať. Prejdite na stĺpec CLSID Modified Time a kliknutím na hlavičku zoraďte v tomto poli. Ak chcete vylúčiť moduly poskytované spoločnosťou Microsoft, môžete ísť na Možnosti> Skryť všetky rozšírenia spoločnosti Microsoft . Pre tých, ktorí používajú 64-bitovú verziu systému Windows, môžete tiež chcieť zobraziť 32-bitové rozšírenia v systéme tak, že prejdete na Možnosti> Zobraziť 32-bitové rozšírenia shellu .

Vyhľadajte rozšírenia, ktoré boli pridané tesne pred nástupom symptómov. Vyberte jednu alebo viac a stlačte F7 alebo choď na Súbor> Zakázať vybraté položky , alebo kliknite na červenú ikonu LED na paneli s nástrojmi. V ideálnom prípade by sa to malo robiť jeden po druhom.

Otestujte, či príznaky pretrvávajú. Ak tak urobia, predtým zakázané rozšírenia môžete znova povoliť pomocou F8 , Súbor> Povoliť vybraté položky alebo ikona zeleného panela s nástrojmi LED. Odtiaľto deaktivujte iné rozšírenie a opakujte testovací proces, kým nenájdete to, ktoré spôsobuje problém.

Opravte/preinštalujte redistribuovateľné súbory VC ++

Tento používam ako poslednú možnosť, ak iba jeden program vykopáva chyby. Ak máte viacero programov, ktoré majú problémy s chybami runtime VC ++, skúste to najskôr.

Pri pohľade na nainštalované programy v mojom systéme ( Ovládací panel> Programy a funkcie ), zobrazuje každú verziu redistribuovateľných balíkov (a niektoré ich aktualizácie) od verzie 8 až po verziu 12 (VC ++ 2005 až VC ++ 2013). Mám ich nainštalované kvôli programovacím nástrojom spoločnosti Microsoft, ktoré používam. Väčšina používateľov nebude mať všetky tieto položky.

Môžete nájsť najnovšie súbory na stiahnutie pre podporované verzie programu Visual C ++ od spoločnosti Microsoft. Na naše účely sa tu musíte zaoberať iba tými, ktoré sú označené ako „redistribuovateľné“ balíky. Odkazy, ktoré sú klasifikované ako servisné balíky, slúžia na programovacie nástroje, nielen na dobu prevádzky. Budete potrebovať iba tie, ktoré sú aktuálne uvedené v nainštalovaných programoch vo vašom systéme. Inštalácia ďalších verzií v tomto prípade nepomôže. Používatelia 64-bitových operačných systémov môžu potrebovať verzie CRT x86 aj x64.

Služba Windows Update kontroluje, či má váš počítač nainštalované najnovšie aktualizácie týchto balíkov, ale nekontroluje, či je správne nainštalovaný a či nie je poškodený. Inštalačné programy môžu skontrolovať, či sú všetky súbory runtime správne a či sú všetky položky databázy Registry správne.

Akonáhle si stiahnete príslušné inštalátory, spustite ich v systéme. Pred preinštalovaním balíka vás verzie 2005 vyzve na prijatie licenčnej zmluvy. Všetky ostatné majú GUI, ktoré sa vás opýta, či chcete opraviť alebo odinštalovať existujúcu inštaláciu. Vo väčšine prípadov všetky problémy vyrieši operácia opravy.

Ak chcete vyskúšať najextrémnejší spôsob, môžete odinštalovať runtime, reštartovať počítač a potom ich znova nainštalovať. Neodporúčam túto metódu s dobehmi 2005 a 2008. Bez nich systém Windows vygeneruje veľa chýb a veľa funkcií pri reštarte nebude k dispozícii.

Záver

S trochou pozorovania, nádychom pokusov a omylov a určitým porozumením toho, ako sa chyby generujú z behu systému, je možné problémy so softvérom nájsť a vyriešiť bez toho, aby ste sa museli uchýliť ku komplikovaným nástrojom na ladenie a protokolom.

Vyskytli sa vo vašom systéme chyby za behu? Čo bolo potrebné na ich vyriešenie? Dajte mi vedieť v nižšie uvedených komentároch.

zdieľam zdieľam Tweet E -mail Tu je dôvod, prečo FBI vydala upozornenie na úľový ransomware

FBI vydala varovanie pred obzvlášť škaredým kmeňom ransomwaru. Tu je dôvod, prečo si musíte dávať pozor predovšetkým na ransomware Hive.

Čítajte ďalej
Súvisiace témy
  • Windows
  • Technológia vysvetlená
  • Opýtajte sa odborníkov
  • Prieskumník systému Windows
  • Windows
  • Prieskumník súborov
  • Windows Search
  • Riešenie problémov
O autorovi Bruce Epper(13 článkov uverejnených)

Bruce sa hrá s elektronikou od 70. rokov, s počítačmi od začiatku 80. rokov a presne odpovedal na otázky o technológiách, ktoré celý čas nepoužíval ani nevidel. Otravuje sa aj tým, že sa pokúša hrať na gitare.

Viac od Brucea Eppera

prihlásiť sa ku odberu noviniek

Pripojte sa k nášmu bulletinu a získajte technické tipy, recenzie, bezplatné elektronické knihy a exkluzívne ponuky!

Kliknutím sem sa prihlásite na odber