Kaip ištaisyti „Windows Visual C ++“ vykdymo laiko klaidas

Kaip ištaisyti „Windows Visual C ++“ vykdymo laiko klaidas

Bendros „Windows“ bibliotekos daro programavimą daug efektyvesnį programuotojui, kuriam nereikia išradinėti rato kiekvieną kartą, kai reikia atlikti bendrą užduotį. Jie taip pat leidžia lengviau užblokuoti saugumo skyles bendrinamame kode, kai jos randamos, nes jį reikia lopyti mažiau vietų ir nereikalaujama, kad kiekviena programa būtų iš naujo sukompiliuota.





Nepaisant šių teigiamų aspektų, jie gali kelti savo problemų bandydami pašalinti galimų klaidų pranešimų priežastis.





Mūsų skaitytojo klausimas:

Kaip išspręsti „Windows Vista“ 32 bitų C: Windows explorer.exe problemą „Dell Inspiron 530“?





Spustelėjus mygtuką Gerai ekrano kopijoje rodomame dialogo lange, ekranas patamsės ir grįš į normalų veikimą, tačiau neleisiu pasiekti C, D ir kartais E disko, kai bandysiu juos pasiekti iš Mano kompiuterio.

Bėgimas sfc /scannow neranda klaidų. Atsisiunčiau naujinimų iš „Dell“ ir „Microsoft“ svetainių, bandydamas išspręsti šią problemą. Taip pat įdiegiau „Microsoft Visual C ++ 2010 Redistributable Package“ (x86). Remiantis „Windows Update“, kompiuteris yra visiškai atnaujintas.



Bruce'o atsakymas:

Pastaba: Diskusijos apie „Windows Explorer“ „Windows 7“ ir ankstesnėse versijose taip pat taikomos „Windows 8“ ir naujesnių versijų „File Explorer“. Jei tarp jų yra pastebimas skirtumas, tai bus aiškiai nurodyta.

„Windows“ apvalkalas

„Windows Explorer“ yra apvalkalą ir veikia kaip explorer.exe procesas, kaip matyti užduočių tvarkyklėje arba „Sysinternals“ procesų naršyklėje. Kaip ir daugelis kitų „Windows“ programų, visos apvalkalo teikiamos funkcijos nėra įtrauktos į tą vieną vykdomąjį failą. Yra dešimtys kitų EXE ir DLL failų, naudojamų nuosavybės lapams, nuosavybės tvarkytojams, peržiūrų tvarkytojams, kontekstiniams meniu ir daugeliui kitų elementų, kuriuos kasdien naudojate „Windows Explorer“, įdiegti.





Išplečiamas apvalkalas

„Shell“ plėtiniai leidžia programuotojams lengvai pridėti funkcijų prie „Windows Explorer“, parašant DLL, kad būtų galima atlikti užduotį, ir užregistravus DLL operacinėje sistemoje, kad „Explorer“ žinotų, kur rasti kodą užduočiai atlikti. Pavyzdžiui, 7-užtrauktukas prideda papildomą meniu prie standartinio kontekstinio meniu, suteikiant greitą prieigą prie archyvo tvarkymo užduočių, „Hard Disk Sentinel“ prideda piktogramų perdangas prie standartinių diskų piktogramų, kad galėtumėte akimirksniu pamatyti disko sveikatos būklę ir „HashTab“ prideda naują ypatybių lapą, kad apskaičiuotų ir rodytų pasirinkto failo maišas.

Daugelis šių apvalkalo plėtinių yra įdiegti kaip procesiniai komponentų objektų modelio (COM) serveriai. Tai reiškia, kad kai procesas, šiuo atveju „Windows Explorer“, naudoja plėtinį, jis nebus rodomas užduočių tvarkyklėje arba procesų naršyklėje kaip atskiras vykdomas procesas, turintis savo proceso identifikatorių (PID). Vietoj to jis vykdomas skambinant explorer.exe procesui.





Numatytasis vieno egzemplioriaus procesas

Parašyta, kad „Windows Explorer“ gali veikti kaip du atskiri procesai, tačiau pagal numatytąją konfigūraciją ji veiks tik vieną egzempliorių. Kai jis pirmą kartą vykdomas kaip paleisties proceso dalis, sukuriama „Windows“ darbalaukio aplinka. Vykdant jį dar kartą, sukuriama nauja gija esamame procese, kuriame rodomas pažįstamas failų valdymo langas, o ne pradedamas naujas procesas.

Šis elgesys leidžia sumažinti atminties pėdsaką, tačiau taip pat gali sukelti tam tikrą klaidą šalinant problemas. Dėl kritinės klaidos ar neišspręstos išimties kode, kuris vykdomas „explorer.exe“ procese, įskaitant procesorių serverius, kuriuos teikia DLL, visa darbastalio aplinka nusileis.

Daugeliu atvejų darbalaukio procesas bus automatiškai paleistas iš naujo. Jei jis nebus paleistas iš naujo, vis tiek turėtumėte turėti galimybę naudoti „Ctrl-Shift-Esc“, kad atidarytumėte užduočių tvarkyklę. Iš ten eikite į Failas> Nauja užduotis (Vykdyti ...)> tipo explorer.exe> ​​Gerai norėdami iš naujo pradėti procesą.

To galima išvengti atlikus paprastą pakeitimą. Atviras „Windows Explorer“> Tvarkyti> Aplankas ir paieškos parinktys „Vista“/7. Jei naudojate „Windows 8“ ir naujesnes versijas, atidarykite Failų naršyklė> Rodinys> Parinktys> Keisti aplanką ir paieškos parinktis . Pasirinkite Žiūrėti skirtuką ir patikrinti Atidarykite aplankų langus atskirame procese .

integruota/integruota grafika

Pakeitus šį nustatymą, jūsų darbalaukio procesas bus izoliuotas nuo visų kitų atidarytų „Windows Explorer“ langų. Jei sugenda kuris nors iš šių „Explorer“ langų, jūsų darbalaukis liks nepažeistas.

„Microsoft Visual C ++ Runtime Library“ (CRT)

„Microsoft Visual C ++ Runtime Library“ teikia įprastas „Windows“ programavimo procedūras, kurios automatizuoja daugelį užduočių, tokių kaip įvestis/išvestis, manipuliavimas failais, atminties paskirstymas, sistemos iškvietimai ir daugelis kitų.

Kiekviename „Windows“ diegime bus įdiegtos bent dvi skirtingos CRT versijos. Naujai sukurtame „Vista SP2“ per „Windows 10“ įrenginį bus tiek 8.0, tiek 9.0 versija (atitinkamai VC 2005 ir VC 2008). Įdiegus papildomą programinę įrangą, ji taip pat gali apimti naujesnes vykdymo laiko versijas, atsižvelgiant į tai, kuri „Visual C ++“ versija buvo naudojama kuriant programą ar bet kurį jos komponentą.

Vykdymo klaidos

Kai kodo dalyje aptinkama klaida ar išimtis, geriausia būtų, kad ji būtų kuo greičiau išnagrinėta atliekant šiuo metu vykdomą procedūrą ir ištaisoma arba leidžiama nesėkmingai. Jei klaida nėra tvarkoma vietoje, ji perduodama kodui, kuris iškvietė šiuo metu vykdomą kodą, ir procesas tęsiamas tol, kol bus ištaisyta išimtis. Jei jis baigs savo eigą iki grandinės viršaus ir vis tiek nebus tvarkomas, tai sukurs vykdymo klaidą, kaip parodyta aukščiau.

Kai vartotojas spustelės mygtuką Gerai, procesas bus nutrauktas. Jei programa turi apibrėžtą gedimo elgseną, pvz., Svarbias paslaugas, arba jos vykdymo būsena stebima kitu procesu, ji gali būti automatiškai atnaujinta. Štai kas vyksta šiuo atveju. Užbaigus „explorer.exe“ procesą, ekranas užtemdo, o darbalaukis grįžta, kai „explorer.exe“ procesas paleidžiamas iš naujo.

Nors aukščiau pateiktas klaidos pranešimas aiškiai rodo, kad jis kilo iš „explorer.exe“ proceso, greičiausiai tai nebus pati „explorer.exe“ problema. Labiau tikėtina, kad kaltininkas yra kitur, pavyzdžiui, „Explorer“ naudojamas trečiosios šalies plėtinys.

Kiti svarstymai

Kai skaitytojas aprašo problemą aukščiau, turime atsižvelgti į keletą papildomų elementų:

  • Avarijos metu „Explorer“ bandė, bet nesugebėjo užpildyti sąrašo peržiūros.
  • Nesugebėjimas pasiekti diskų po to, kai darbalaukis buvo paleistas iš naujo, gali reikšti, kad kitas procesas užblokavo vieną ar kelis iš šių įrenginių, todėl neleidžiama pasiekti naujai sukurto „explorer.exe“ proceso.
  • Bėgimas sfc /scannow ir gauti sveiką sąskaitą, „Windows“ saugomi ištekliai nukrenta į sąrašo apačią. Kitos priežastys yra daug labiau tikėtinos.

Pataisymai yra

Šiuo konkrečiu atveju yra trys sritys, kuriose norėčiau ieškoti sprendimo. Pirmasis apima „Windows“ paieškos paslaugą, antrasis - apvalkalo plėtinių tyrimą, o paskutinis - patys „VC ++“ perskirstomi failai.

Kadangi pradinėje ekrano kopijoje rodoma avarija, įvykusi, kai „Explorer“ bando užpildyti sąrašo rodinį, gali būti, kad „Windows“ paieškos paslauga blokuoja prieigą prie reikiamų išteklių. Mačiau, kad taip atsitinka, kai paslauga sugenda ir neturi tinkamų paleidimo parametrų.

Paspauskite Win+R> tipo services.msc> Gerai paleisti valdymo pultą su paslaugų moduliu. Slinkite žemyn iki „Windows“ paieškos ir dukart spustelėkite įrašą, kad atidarytumėte dialogo langą „Ypatybės“. Įsitikinkite, kad atkūrimo skirtuko nustatymai atitinka žemiau esantį vaizdą.

Dažniausia problema yra nustatymas „Iš naujo paleisti paslaugą po:“. Ši klaida dažnai pasitaiko, kai šis nustatymas yra lygus nuliui.

Probleminiai apvalkalo plėtiniai

parsisiųsti „Nirsoft“ „ShellExView“ savo sistemos architektūrai (x86 arba x64), įdiekite ir paleiskite. Sistemos tyrimas ir lentelės užpildymas duomenimis užtruks šiek tiek laiko. Pereikite prie stulpelio CLSID modifikuotas laikas ir spustelėkite antraštę, kad rūšiuotumėte šį lauką. Jei norite neįtraukti „Microsoft“ pateiktų modulių, galite eiti į Parinktys> Slėpti visus „Microsoft“ plėtinius . Tiems, kurie naudoja 64 bitų „Windows“ versiją, taip pat galbūt norėsite parodyti sistemos 32 bitų plėtinius apsilankę Parinktys> Rodyti 32 bitų apvalkalo plėtinius .

Ieškokite plėtinių, kurie buvo pridėti prieš pat simptomų atsiradimą. Pasirinkite vieną ar daugiau ir paspauskite F7 arba eiti į Failas> Išjungti pasirinktus elementus , arba įrankių juostoje spustelėkite raudoną šviesos diodo piktogramą. Idealiu atveju tai turėtų būti daroma po vieną.

Išbandykite, ar simptomai išlieka. Jei jie tai padarys, galite iš naujo įjungti anksčiau išjungtus plėtinius naudodami F8 , Failas> Įgalinti pasirinktus elementus , arba žalia LED įrankių juostos piktograma. Iš čia išjunkite kitą plėtinį ir kartokite bandymo procesą, kol rasite tą, kuris sukelia problemą.

Pataisykite/iš naujo įdiekite VC ++ perskirstomus failus

Aš naudoju tai kaip paskutinę priemonę, jei tik viena programa pašalina klaidas. Jei turite kelias programas, kurioms kyla problemų dėl „VC ++“ vykdymo laiko klaidų, pirmiausia galite tai išbandyti.

Kai žiūriu į mano sistemoje įdiegtas programas ( Valdymo skydas> Programos ir funkcijos ), jame rodoma kiekviena perskirstomų paketų versija (ir kai kurie jų atnaujinimai), pradedant nuo 8 iki 12 versijos (VC ++ 2005 iki VC ++ 2013). Aš juos įdiegiau dėl naudojamų „Microsoft“ programavimo įrankių. Dauguma vartotojų viso to neturės.

Galite rasti naujausius palaikomų „Visual C ++“ versijų atsisiuntimus iš „Microsoft“. Mūsų tikslais jums reikia rūpintis tik tomis, kurios pažymėtos kaip „perskirstomos“ pakuotės. Nuorodos, klasifikuojamos kaip paslaugų paketai, yra skirtos programavimo įrankiams, o ne tik vykdymo laikui. Jums reikės tik tų, kurie šiuo metu yra išvardyti jūsų sistemos įdiegtose programose. Kitų versijų įdiegimas šiuo atveju nepadės. 64 bitų operacinių sistemų vartotojams gali prireikti ir CRT x86, ir x64 versijų.

„Windows Update“ patikrina, ar jūsų kompiuteryje įdiegti naujausi šių paketų naujinimai, tačiau netikrina, ar jis tinkamai įdiegtas ir ar jis nebuvo sugadintas. Montuotojai gali patikrinti, ar visi vykdymo laiko failai yra tinkami ir ar visi registro įrašai yra teisingi.

Atsisiuntę atitinkamus diegimo įrenginius, paleiskite juos sistemoje. 2005 m. Versijos paragins jus sutikti su licencijos sutartimi prieš iš naujo įdiegiant paketą. Visi kiti turi GUI, kuri paklaus jūsų, ar norite pataisyti ar pašalinti esamą diegimą. Daugeliu atvejų remonto operacija išspręs visas problemas.

Jei norite išbandyti kraštutiniausią metodą, galite pašalinti veikimo laiką, iš naujo paleisti mašiną ir iš naujo įdiegti. Nerekomenduoju šio metodo 2005 ir 2008 m. Vykdymo metu. Be jų „Windows“ sukurs daug klaidų, o perkrovimo metu nebus daug funkcijų.

Išvada

Šiek tiek stebint, šiek tiek bandymų ir klaidų bei šiek tiek supratus, kaip sistemos veikimo metu sukuriamos klaidos, programinės įrangos problemas galima rasti ir išspręsti nesinaudojant sudėtingais derinimo įrankiais ir žurnalais.

Ar susidūrėte su sistemos veikimo klaidomis? Ko reikėjo jiems išspręsti? Praneškite man toliau pateiktose pastabose.

Dalintis Dalintis „Tweet“ Paštu Štai kodėl FTB paskelbė įspėjimą dėl „Hive Ransomware“

FTB paskelbė įspėjimą dėl ypač bjaurios išpirkos programų. Štai kodėl turite būti ypač atsargūs dėl „Hive“ išpirkos programos.

Skaityti toliau
Susijusios temos
  • „Windows“
  • Technologija paaiškinta
  • Klauskite ekspertų
  • „Windows Explorer“
  • „Windows“
  • Failų naršyklė
  • „Windows“ paieška
  • Problemų sprendimas
Apie autorių Bruce'as Epperis(Paskelbti 13 straipsnių)

Bruce'as žaidė su elektronika nuo 70 -ųjų, kompiuteriais nuo 80 -ųjų pradžios ir tiksliai atsakinėjo į klausimus apie technologijas, kurių jis nenaudojo ir nematė visą laiką. Jis taip pat erzina save bandydamas groti gitara.

Daugiau iš Bruce'o Epperio

Prenumeruokite mūsų naujienlaiškį

Prisijunkite prie mūsų naujienlaiškio, kad gautumėte techninių patarimų, apžvalgų, nemokamų el. Knygų ir išskirtinių pasiūlymų!

Norėdami užsiprenumeruoti, spustelėkite čia