Kuinka korjata Windows Visual C ++ -ajonaikaiset virheet

Kuinka korjata Windows Visual C ++ -ajonaikaiset virheet

Windowsin jaetut kirjastot tekevät ohjelmoinnista paljon tehokkaampaa ohjelmoijalle, jonka ei tarvitse keksiä pyörää uudelleen aina, kun hänen on suoritettava yhteinen tehtävä. Ne helpottavat myös suoja -aukkojen tukemista jaetussa koodissa, kun ne löydetään, koska se on korjattava harvemmissa paikoissa eikä vaadi jokaisen sovelluksen kääntämistä uudelleen.





Näistä myönteisistä näkökohdista huolimatta he voivat esittää omia ongelmiaan yrittäessään selvittää niiden aiheuttamien virheilmoitusten perimmäistä syytä.





Lukijamme kysymys:

Kuinka korjaan Windows Vistan 32-bittisen C: Windows explorer.exe -ongelman Dell Inspiron 530 -laitteessa?





Kun olet napsauttanut OK -painiketta kuvakaappauksessa näkyvässä valintaikkunassa, näyttö pimenee ja palaa normaaliin toimintaan, mutta se ei salli minun käyttää C-, D- ja joskus E -asemaa, kun yritän käyttää niitä Oma tietokone.

Juoksu sfc /scannow ei löydä virheitä. Latasin päivityksiä sekä Dellin että Microsoftin verkkosivustoilta yrittäen korjata tämän ongelman. Olen asentanut myös Microsoft Visual C ++ 2010 Redistributable Package (x86). Tietokone on täysin ajan tasalla Windows Updaten mukaan.



Brucen vastaus:

Huomautus: Keskustelut Windowsin Resurssienhallinnasta Windows 7: ssä ja aiemmissa versioissa koskevat myös Resurssienhallintaa Windows 8: ssa ja uudemmissa versioissa. Jos niiden välillä on huomattava ero, se ilmoitetaan nimenomaisesti.

Windows Shell

Windowsin Resurssienhallinta On kuori ja toimii explorer.exe -prosessina, kuten tehtävienhallinnassa tai Sysinternalsin prosessinhallinnassa näkyy. Kuten monet muut Windows -ohjelmat, kaikki kuoren tarjoamat toiminnot eivät sisälly yksittäiseen suoritettavaan tiedostoon. On olemassa kymmeniä muita EXE- ja DLL -tiedostoja, joita käytetään ominaisuusarkkien, omaisuudenkäsittelijöiden, esikatselukäsittelijöiden, kontekstivalikoiden ja monien muiden Windowsin Resurssienhallinnassa päivittäin käyttämien elementtien toteuttamiseen.





Laajennettava kuori

Shell -laajennusten avulla ohjelmoijat voivat helposti lisätä toimintoja Windowsin Resurssienhallintaan kirjoittamalla DLL suorittaakseen tehtävän ja rekisteröimällä DLL käyttöjärjestelmään, joten Explorer tietää, mistä löytää koodin tehtävän suorittamiseksi. Esimerkiksi, 7-vetoketju lisää alavalikon vakio-kontekstivalikkoon, joka mahdollistaa nopean pääsyn arkistojen käsittelytehtäviin, kiintolevy Sentinel lisää kuvakekerrokset vakioaseman kuvakkeisiin, jotta näet aseman terveydentilan yhdellä silmäyksellä, ja HashTab lisää uuden ominaisuusarkin valitun tiedoston tiivisteiden laskemiseksi ja näyttämiseksi.

Monet näistä kuorilaajennuksista on toteutettu COM (Component Object Model) -palvelimina. Tämä tarkoittaa sitä, että kun prosessi, tässä tapauksessa Windowsin Resurssienhallinta, käyttää laajennusta, se ei näy Tehtävienhallinnassa tai Prosessienhallinnassa erillisenä käynnissä olevana prosessina, jolla on oma prosessitunniste (PID). Sen sijaan se suorittaa kutsuvan explorer.exe -prosessin sisällä.





Yhden instanssin oletusprosessi

Windowsin Resurssienhallinnan on kirjoitettu pystyvän toimimaan kahtena erillisenä prosessina, mutta oletusasetuksissa se suorittaa vain yhden ilmentymän. Kun se suoritetaan ensimmäisen kerran osana käynnistysprosessia, se luo Windowsin työpöytäympäristön. Sen suorittaminen uudelleen luo uuden säikeen olemassa olevaan prosessiin, joka näyttää tutun tiedostonhallintaikkunan uuden prosessin aloittamisen sijaan.

Tämä toiminto vähentää muistin jalanjälkeä, mutta voi myös tuoda oman pienen käänteen ongelmien vianmäärityksessä. Kriittinen virhe tai käsittelemätön poikkeus explorer.exe-prosessissa suoritettavassa koodissa, mukaan lukien DLL: n tarjoamat prosessipalvelimet, aiheuttaa koko työpöytäympäristön kaatumisen.

Useimmissa tapauksissa työpöytäprosessi käynnistyy automaattisesti uudelleen. Jos se ei käynnisty uudelleen, sinun pitäisi silti pystyä käyttämään Ctrl-Shift-Esc-näppäintä tehtävienhallinnan avaamiseen. Siirry sieltä Tiedosto> Uusi tehtävä (Suorita…)> tyyppi explorer.exe> ​​OK käynnistää prosessi uudelleen.

Tämä voidaan välttää yksinkertaisella muutoksella. Avata Windowsin Resurssienhallinta> Järjestä> Kansio- ja hakuasetukset Vista/7: ssä. Avaa Windows 8 ja uudemmat Tiedostonhallinta> Näytä> Asetukset> Vaihda kansio ja hakuasetukset . Valitse Näytä -välilehti ja tarkista Käynnistä kansioikkunat erillisessä prosessissa .

Windows 10 hidas päivityksen 2019 jälkeen

Tämän asetuksen muuttaminen eristää työpöytäprosessisi kaikista muista Windowsin Resurssienhallinnan ikkunoista. Jos jokin näistä Explorer -ikkunoista kaatuu, työpöytäsi ei vahingoitu.

Microsoft Visual C ++ Runtime Library (CRT)

Microsoft Visual C ++ Runtime Library tarjoaa Windowsin ohjelmointirutiinit, jotka automatisoivat monia tehtäviä, kuten syöttö/tulostus, tiedostojen käsittely, muistin varaus, järjestelmäpuhelut ja monet muut.

Jokaisessa Windows -asennuksessa on vähintään kaksi CRT -versiota asennettuna. Juuri rakennetussa Vista SP2: ssa Windows 10 -koneen kautta on saatavilla sekä versio 8.0 että 9.0 (VC 2005 ja VC 2008). Kun lisäohjelmisto on asennettu, se voi sisältää myös uudempia ajonaikaisia ​​versioita sen mukaan, mitä Visual C ++ -versiota käytettiin ohjelman tai sen osien luomiseen.

Suorituksenaikaiset virheet

Kun koodissa on virhe tai poikkeus, se käsitellään mieluiten mahdollisimman pian parhaillaan suoritettavassa menettelyssä ja joko korjataan tai sallitaan virheellinen virhe. Jos virhettä ei käsitellä paikallisesti, se välitetään koodille, joka kutsui parhaillaan suoritettavan koodin, ja prosessi jatkuu, kunnes poikkeus käsitellään. Jos se suorittaa ajonsa ketjun huipulle ja sitä ei edelleenkään käsitellä, se aiheuttaa ajonaikaisen virheen, kuten yllä näkyy.

Kun käyttäjä napsauttaa OK -painiketta, prosessi lopetetaan. Jos ohjelmalla on määritelty vikakäyttäytyminen, kuten kriittiset palvelut, tai jos sen suoritustilaa valvoo toinen prosessi, se voidaan nimetä uudelleen automaattisesti. Näin tapahtuu tässä tapauksessa. Näyttö pimenee, kun explorer.exe -prosessi lopetetaan, ja työpöytä palaa takaisin, kun explorer.exe -prosessi käynnistetään uudelleen.

Vaikka yllä oleva virheilmoitus osoittaa selvästi, että se on peräisin explorer.exe -prosessista, se ei todennäköisesti ole ongelma explorer.exe: n kanssa. On todennäköisempää, että syyllinen on muualla, kuten kolmannen osapuolen laajennus, jota Explorer käyttää.

Muut näkökohdat

Kun lukijamme on kuvaillut yllä olevaa ongelmaa, meidän on otettava huomioon muutama lisäkohde:

  • Kaatumisen aikaan Explorer yritti, mutta ei pystynyt täyttämään luettelonäkymää.
  • Kyvyttömyys käyttää asemia työpöydän uudelleenkäynnistyksen jälkeen voi tarkoittaa, että toinen prosessi on lukinnut yhden tai useamman näistä laitteista, mikä estää pääsyn äskettäin luotuun explorer.exe -prosessiin.
  • Juoksu sfc /scannow ja saamme puhtaan terveyslaskun, pudottaa Windowsin suojatut resurssit luettelon loppuun harkittavaksi. Muut syyt ovat paljon todennäköisempiä.

Korjaukset ovat mukana

Tässä tapauksessa etsin ratkaisua kolmelta alueelta. Ensimmäinen koskee Windows -hakupalvelua, toinen kuorilaajennusten tutkimista, ja viimeinen olisi itse VC ++ -jakelu.

Koska alkuperäinen kuvakaappaus näyttää kaatumisen, kun Explorer yrittää täyttää luettelonäkymän, on mahdollista, että Windows -hakupalvelu estää tarvittavien resurssien käytön. Olen nähnyt tämän tapahtuvan, kun palvelu kaatuu eikä sillä ole oikeita uudelleenkäynnistysparametreja.

Lehdistö Win+R> tyyppi services.msc> OK käynnistää hallintakonsoli palvelumoduulilla. Vieritä alaspäin Windows-hakuun ja kaksoisnapsauta merkintää avataksesi Ominaisuudet-valintaikkunan. Varmista, että Palautus -välilehden asetukset vastaavat alla olevaa kuvaa.

Yleisin ongelma on 'Käynnistä palvelu uudelleen:' -asetus. Tämä virhe ilmenee usein, kun tämä asetus ei ole nolla.

Ongelmaisia ​​Shell -laajennuksia

ladata Nirsoftin ShellExView asenna ja suorita järjestelmäarkkitehtuurisi (x86 tai x64). Järjestelmän tutkiminen ja taulukon täyttäminen tiedoilla vie jonkin aikaa. Vieritä CLSID Modified Time -sarakkeeseen ja lajittele tämä kenttä napsauttamalla otsikkoa. Jos haluat sulkea pois Microsoftin tarjoamat moduulit, voit siirtyä osoitteeseen Asetukset> Piilota kaikki Microsoft -laajennukset . Jos käytät 64-bittistä Windows-versiota, saatat haluta näyttää järjestelmän 32-bittiset laajennukset siirtymällä Asetukset> Näytä 32-bittiset Shell-laajennukset .

Etsi laajennuksia, jotka lisättiin juuri ennen oireiden alkamista. Valitse yksi tai useampi ja paina F7 tai mennä osoitteeseen Tiedosto> Poista valitut kohteet käytöstä tai napsauta työkalurivin punaista LED -kuvaketta. Ihannetapauksessa tämä tulisi tehdä yksi kerrallaan.

Testaa, jatkuvatko oireet. Jos näin on, voit ottaa uudelleen käyttöön aiemmin poistetut laajennukset käyttämällä F8 , Tiedosto> Ota valitut kohteet käyttöön tai vihreä LED -työkalurivin kuvake. Poista täältä toinen laajennus käytöstä ja toista testausprosessi, kunnes löydät ongelman aiheuttavan laajennuksen.

Korjaa/asenna uudelleen jaettavat VC ++ -levyt

Käytän tätä viimeisenä keinona, jos vain yksi ohjelma poistaa virheitä. Jos sinulla on useita ohjelmia, joilla on ongelmia VC ++ -ajonaikaisten virheiden kanssa, kannattaa kokeilla tätä ensin.

Kun tarkastelen järjestelmäni asennettuja ohjelmia ( Ohjauspaneeli> Ohjelmat ja toiminnot ), se näyttää uudelleenjakeltujen pakettien kaikki versiot (ja jotkut niiden päivitykset) versiosta 8 versioon 12 (VC ++ 2005 - VC ++ 2013). Olen asentanut ne käyttämieni Microsoftin ohjelmointityökalujen takia. Useimmilla käyttäjillä ei ole kaikkia näitä.

Löydät uusimmat lataukset tuetuille Visual C ++ -versioille Microsoftilta. Tässä tarkoituksessa sinun on kiinnitettävä huomiota vain paketteihin, jotka on merkitty 'jakelukelpoisiksi'. Palvelupaketteiksi luokitellut linkit on tarkoitettu ohjelmointityökaluille, ei pelkästään ajonaikaisille. Tarvitset vain niitä, jotka on lueteltu järjestelmän asennetuissa ohjelmissa. Muiden versioiden asentaminen ei auta tässä tapauksessa. 64-bittisten käyttöjärjestelmien käyttäjät saattavat tarvita sekä CRT- että x86- ja x64-versioita.

Windows Update tarkistaa, onko tietokoneeseesi asennettu näiden pakettien uusimmat päivitykset, mutta se ei tarkista, että se on asennettu oikein ja ettei se ole rikki. Asentajat voivat tarkistaa, että kaikki ajonaikaiset tiedostot ovat oikeat ja että kaikki rekisterimerkinnät ovat oikein.

Kun olet ladannut tarvittavat asennusohjelmat, suorita ne järjestelmässä. Vuoden 2005 versiot kehottavat sinua hyväksymään käyttöoikeussopimuksen ennen paketin uudelleenasentamista. Kaikilla muilla on käyttöliittymä, joka kysyy sinulta, haluatko korjata tai poistaa olemassa olevan asennuksen. Useimmissa tapauksissa korjaus korjaa kaikki ongelmat.

Jos haluat kokeilla äärimmäistä menetelmää, voit poistaa ajonaikaiset asennukset, käynnistää koneen uudelleen ja asentaa ne sitten uudelleen. En suosittele tätä menetelmää vuosien 2005 ja 2008 kanssa. Ilman niitä Windows tuottaa paljon virheitä, ja suuri osa toiminnoista ei ole käytettävissäsi uudelleenkäynnistyksen yhteydessä.

Johtopäätös

Pienellä havainnoinnilla, ripauksella kokeiluja ja virheitä sekä ymmärryksellä siitä, miten virheet syntyvät järjestelmän ajon aikana, ohjelmisto -ongelmat voidaan löytää ja ratkaista ilman monimutkaisia ​​virheenkorjaustyökaluja ja -lokeja.

Oletko törmännyt ajonaikaisiin virheisiin järjestelmässäsi? Mitä niiden ratkaisemiseksi vaadittiin? Kerro minulle alla olevissa kommenteissa.

Jaa Jaa Tweet Sähköposti Tästä syystä FBI antoi varoituksen Hive Ransomware -ohjelmasta

FBI antoi varoituksen erityisen ikävästä ransomware -kannasta. Tästä syystä sinun on oltava erityisen varovainen Hive -lunnasohjelmista.

Lue seuraava
Liittyvät aiheet
  • Windows
  • Tekniikka selitetty
  • Kysy asiantuntijoilta
  • Windowsin Resurssienhallinta
  • Windows
  • Tiedostonhallinta
  • Windows -haku
  • Ongelmien karttoittaminen
Kirjailijasta Bruce Epper(13 artikkelia julkaistu)

Bruce on pelannut elektroniikalla 70 -luvulta lähtien, tietokoneita 80 -luvun alusta lähtien ja vastannut tarkasti tekniikkaa koskeviin kysymyksiin, joita hän ei ole käyttänyt eikä nähnyt koko ajan. Hän myös ärsyttää itseään yrittämällä soittaa kitaraa.

Lisää Bruce Epperiltä

tilaa uutiskirjeemme

Liity uutiskirjeeseemme saadaksesi teknisiä vinkkejä, arvosteluja, ilmaisia ​​e -kirjoja ja ainutlaatuisia tarjouksia!

Klikkaa tästä tilataksesi