Kako popraviti Windows Visual C ++ runtime error

  • Edmund Richardson
  • 0
  • 3446
  • 606
Oglas

Zajedničke biblioteke u sustavu Windows čine programiranje mnogo učinkovitijim za programera koji ne mora iznovavati kotač svaki put kada mu treba za obavljanje zajedničkog zadatka. Oni također lakše ubacuju sigurnosne rupe u zajednički kod kada se nađu jer ih je potrebno zakrpati na manje mjesta i ne zahtijeva ponovnu kopiranje svake aplikacije.

Unatoč ovim pozitivnim aspektima, oni mogu predstavljati vlastite probleme pri pokušaju rješavanja uzroka grešaka koje mogu generirati.

Pitanje našeg čitatelja:

Kako mogu riješiti problem s 32-bitnim C: \ Windows \ explor.exe za Windows Vista na Dell Inspiron 530?

Nakon klika na gumb U redu u dijaloškom okviru prikazanom na snimku zaslona zaslon će se potamniti i vratiti se u normalan rad, ali neće mi dopustiti pristup C, D, a ponekad i E pogonu kada im pokušavam pristupiti. s Mog računala.

Trčanje sfc / scannow ne pronalazi nikakve pogreške. Preuzimao sam ažuriranja s web stranice Dell i Microsoft koji pokušavaju riješiti ovaj problem. Instalirao sam i Microsoft Visual C ++ 2010 Redistributable paket (x86). Računalo je potpuno ažurno prema Windows Updateu.

Bruceov odgovor:

Napomena: Rasprave o programu Windows Explorer u sustavu Windows 7 i starijim verzijama primjenjuju se i na File Explorer u sustavu Windows 8 i novijim verzijama. Ako među njima postoji vidljiva razlika, to će biti izričito navedeno.

Windows Shell

Windows Explorer je školjka i pokreće se u istraživačem.exe proces kao što se vidi u Upravitelju zadataka ili Sysinternals 'Process Explorer Procesu preglednika - Najsnažnija zamjena upravitelja zadataka [Windows] Provjera procesa - Najmoćnija zamjena upravitelja zadataka [Windows] Budimo iskreni, Windows Upravitelj zadataka nije tako dobar za razumijevanje i upravljanje procesima koji se izvode na vašem računalu. Čak i na Windows-u 8, gdje je znatno poboljšan, upravitelj zadataka ne može se približiti… Kao i mnogi drugi Windows programi, sva funkcionalnost koju pruža ljuska nije ugrađena u jednu jedinstvenu izvršnu datoteku. Postoje deseci drugih EXE i DLL datoteka Kako popraviti nedostajuće pogreške DLL datoteka Kako popraviti nedostajuće pogreške DLL datoteke koje se koriste za implementaciju lista imovine, alata za obradu imovine, alata za pregled, kontekstnih izbornika i mnogih drugih elemenata koje svakodnevno koristite u programu Windows Explorer.

Proširiva školjka

Proširenja Shell omogućuju programerima da lako dodaju funkcionalnost Windows Exploreru tako što će napisati DLL da izvrše zadatak i registrirati DLL u operativnom sustavu, tako da Explorer zna gdje treba pronaći kôd da bi obavio zadatak. Na primjer, 7-Zip Kako izvaditi datoteke iz ZIP-a, RAR-a, 7z-a i drugih uobičajenih arhiva Kako izvaditi datoteke iz ZIP-a, RAR-a, 7-e i drugih zajedničkih arhiva. Jeste li se ikada suočili s .rar datotekom i pitali ste se kako je otvoriti? Srećom, s pravim alatima je jednostavno upravljanje ZIP datotekama i drugim komprimiranim arhivima. Evo što trebate znati. dodaje podmeni u standardni kontekstni izbornik, pružajući brz pristup zadacima rukovanja arhivom, Sentinel tvrdog diska Pratite svoje zdravlje tvrdog diska i SSD-a Sentinel tvrdog diska Pratite svoje stanje na tvrdom disku i SSD disku Sentinel Imate li je ikad imao neuspjeh u pogonu? Nažalost, ne postoji parana za sprečavanje oštećenja hardvera. Ali praćenje vašeg HDD-a ili SSD-a, za djelovanje kada njihova smrt postane vjerojatna, prvi je korak. standardnim ikonama pogona dodaje slojeve ikona, tako da možete na prvi pogled vidjeti zdravstveno stanje pogona, a HashTab dodaje novi list s svojstvima, za izračunavanje i prikazivanje slogova odabrane datoteke.

Mnoga od tih proširenja ljuske implementirana su kao poslužitelji komponentnog modela objekta (COM) u procesu. To znači da kada neki postupak, u ovom slučaju Windows Explorer, koristi proširenje, neće se pojaviti u upravitelju zadataka ili pregledniku procesa kao zaseban pokretani proces sa vlastitim identifikatorom procesa (PID). Umjesto toga, izvršava se u procesu pozivanja explorer.exe.

Zadani postupak pojedinačne instance

Windows Explorer je napisan da bi se mogao izvoditi kao dva odvojena procesa, ali - u zadanoj konfiguraciji - pokrenut će samo jednu instancu. Kad se prvi put izvodi kao dio postupka pokretanja, stvara Windows radnu okolinu. Ponovno izvršavanje stvara novu nit u postojećem procesu, koji prikazuje poznati prozor za upravljanje datotekama, umjesto da pokreće novi proces.

Ovakvo ponašanje omogućuje smanjeni otisak memorije, ali može donijeti i svoj mali zaokret prilikom rješavanja problema. Kritična pogreška ili neobrađena iznimka u kôdu koji se izvršava u Explor.exe procesu, uključujući poslužitelje u obradi koji pružaju DLL-ovi, uzrokovat će da se s njim sruši cijelo radno okruženje.

U većini slučajeva proces radne površine automatski će se pokrenuti. Ako se ne ponovno pokrene, i dalje biste trebali koristiti Ctrl-Shift-Esc za pokretanje Upravitelja zadataka. Odatle idite na Datoteka> Novi zadatak (Pokreni ...)> tip explor.exe> ​​OK za ponovno pokretanje postupka.

To se može izbjeći jednostavnom promjenom. Otvorena Windows Explorer> Organiziraj> Opcije mapa i pretraživanja u Visti / 7. Otvorite Windows 8 i novije verzije File Explorer> View> Options> Change folder and search search. Odaberite Kartica Prikaži i provjeriti Pokrenite prozore mapa u zasebnom procesu.

Promjena ove postavke izolira radnu površinu od svih ostalih prozora Windows Explorera koje imate otvoreno. Ako se neki od tih prozora Explorera sruši, radna površina će ostati neoštećena.

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

Microsoft Visual C ++ Runtime Library nudi rutine za programiranje Windows-a koji automatiziraju mnoge zadatke, poput ulaza / izlaza, manipulacije datotekama, dodjele memorije, sistemskih poziva i mnogih drugih.

Svaka Windows instalacija imat će najmanje dvije različite verzije CRT-a. Svježe izgrađena Vista SP2 kroz Windows 10 stroj imat će i verzije 8.0 i 9.0 (VC 2005 i VC 2008). Kada se instalira dodatni softver, on može uključivati ​​i novije verzije vremena izvršavanja, ovisno o tome koja se inačica Visual C ++ koristila za stvaranje programa ili bilo koje njegove komponente.

Pogreške tijekom rada

Kada se u komadu koda nađe pogreška ili izuzetak, idealno je da se s njim postupa što je prije moguće u trenutno izvršenom postupku, ili da se ispravi ili omogući graciozan neuspjeh. Ako se pogreška ne rješava lokalno, ona se prosljeđuje do koda koji je nazvao trenutno izvršavajući kôd, a postupak se nastavlja sve dok se ne obradi iznimka. Ako dovrši trčanje do vrha lanca i dalje se ne rukuje, generirat će grešku izvođenja kao što je prikazano gore.

Kad korisnik klikne gumb U redu, postupak će biti zaustavljen. Ako program ima definirano ponašanje neuspjeha, kao što su kritične usluge ili njegovo stanje pokretanja nadzire neki drugi postupak, može se automatski ponovno obnoviti. To se događa u ovom slučaju. Zaslon se zatvara kada se postupakr.r.ee zaustavi, a zatim se radna površina vraća kada se postupak istraživač.exe ponovo pokrene..

Iako gornja poruka o pogrešci jasno upućuje da potiče iz postupka explorer.exe, vjerojatno neće biti problema sa samim explor.exe. Vjerojatnije je da je krivac negdje drugdje, poput proširenja treće strane koje koristi Explorer.

Ostala razmatranja

Uz gornji opis čitatelja, postoji nekoliko dodatnih stavki koje moramo uzeti u obzir:

  • U trenutku pada, Explorer je pokušavao, ali nije uspio, naseliti popis.
  • Nemogućnost pristupa pogonima nakon što se radna površina ponovo razmnoži, može ukazivati ​​na to da je neki drugi proces zaključan jedan ili više tih uređaja, a na taj način sprečava pristup novostvorenom procesur.r.ee.
  • Trčanje sfc / scannow i dobivajući čistu zdravstvenu zaštitu, resurse zaštićene sustavom Windows baca na dno popisa na razmatranje. Ostali su uzroci daleko vjerojatniji.

Popravci su unutra

U ovom konkretnom slučaju postoje tri područja u kojima bih trebao tražiti rješenje. Prvo uključuje uslugu Windows Search, drugo uključuje istraživanje ekstenzija ljuske, a zadnje bi bile same VC ++ preraspodjele.

Windows pretraživanje

Budući da u originalnom snimku zaslona dolazi do pada koji se događaju kada Explorer pokušava popuniti pregled liste, moguće je da usluga pretraživanja Windows blokira pristup potrebnim resursima. Vidio sam da se to događa kada se usluga sruši i nema ispravne parametre za ponovno pokretanje.

tisak Win + R> tip usluge.msc> OK za pokretanje upravljačke konzole s modulom usluge. Pomaknite se prema dolje do Windows pretraživanja i dvaput kliknite na unos da biste otvorili dijaloški okvir Svojstva. Uvjerite se da se postavke na kartici Oporavak podudaraju sa slikom ispod.

Najčešći problem je “Ponovno pokrenite uslugu nakon:” postavka. Ova se pogreška često javlja kada je ova postavka ne-nula.

Problematična proširenja ljuske

Preuzmite Nirsoft-ov ShellExView za vašu arhitekturu sustava (x86 ili x64), instalirajte ga i pokrenite. Trebat će malo vremena da se ispita sustav i ispuni tablica podacima. Pomičite se do stupca CLSID Modificirano vrijeme i kliknite na zaglavlje da biste poredali ovo polje. Ako želite izuzeti module koje nudi Microsoft, možete se obratiti Opcije> Sakrij sva Microsoftova proširenja. Za one koji koriste 64-bitnu verziju sustava Windows, možda biste trebali prikazati i 32-bitna proširenja u sustavu tako da otvorite Opcije> Prikaži 32-bitna proširenja školjki.

Potražite ekstenzije koje su dodane prije nego što su simptomi počeli. Odaberite jedno ili više i pritisnite F7 ili otići Datoteka> Onemogući odabrane stavke, ili kliknite crvenu ikonu LED na alatnoj traci. U idealnom slučaju, to bi trebalo raditi jedan po jedan.

Ispitajte je li simptomi trajni. Ako to učine, možete ponovno omogućiti prethodno onemogućena proširenja pomoću F8, Datoteka> Omogući odabrane stavke, ili zelenu ikonu LED alatne trake. Odavde onemogućite neko drugo proširenje i ponavljajte postupak testiranja sve dok ne pronađete onaj koji uzrokuje problem.

Popravite / ponovno instalirajte VC ++ preraspodjelu

Koristim ovo kao krajnje sredstvo, ako samo jedan program otkrije pogreške. Ako imate više programa koji imaju problema s VC ++ greškama izvođenja, možda biste trebali isprobati ovo prvo.

Kada pregledavate instalirane programe na mom sustavu (Upravljačka ploča> Programi i značajke), prikazuje sve verzije paketa za redistribuciju (i neka njihova ažuriranja) u rasponu od verzije 8 do verzije 12 (VC ++ 2005 do VC ++ 2013). Instaliran sam zbog Microsoftovih programskih alata koji koristim. Većina korisnika neće imati sve to.

Najnovija preuzimanja za podržane verzije Visual C ++ možete pronaći od Microsofta. Za naše potrebe ovdje trebate se baviti samo onima koji su označeni kao “distribuirati” paketi. Veze koje su klasificirane kao servisni paketi odnose se na programske alate, a ne samo na vrijeme izvođenja. Trebat će vam samo oni koji su trenutno navedeni u instaliranim programima na vašem sustavu. Instaliranje drugih verzija u ovom slučaju neće pomoći. Korisnici 64-bitnih operativnih sustava možda trebaju i x86 i x64 verzije CRT-a.

Windows Update provjerava je li na vašem računalu instalirana najnovija ažuriranja za ove pakete, ali ne provjerava je li ispravno instaliran i nije li slomljen. Instalacijski programi mogu provjeriti jesu li sve runtime datoteke ispravne i jesu li svi unosi u registar točni.

Nakon što preuzmete odgovarajuće instalacijske programe, pokrenite ih na sustavu. Inačice iz 2005 tražit će vas da prihvatite licenčni ugovor prije ponovne instalacije paketa. Svi ostali imaju GUI koji će vas pitati želite li popraviti ili deinstalirati postojeću instalaciju. U većini slučajeva, popravka će popraviti sve probleme.

Ako želite isprobati najekstremniju metodu, možete deinstalirati vrijeme izvođenja, ponovno pokrenuti uređaj i ponovo ih instalirati. Ne preporučujem ovu metodu za vrijeme izvođenja 2005. i 2008. godine. Bez njih Windows će generirati puno pogrešaka i mnogo funkcionalnosti neće vam biti dostupno prilikom ponovnog pokretanja.

Zaključak

Uz malo promatranja, dodir pokušaja i pogrešaka i razumijevanje načina na koji se pogreške stvaraju tijekom vremena rada na sustavu, softverski problemi mogu se pronaći i riješiti bez pribjegavanja kompliciranim alatima i zapisnicima za uklanjanje pogrešaka..

Jeste li naišli na runtime pogreške u vašem sustavu? Što je bilo potrebno za njihovo rješavanje? Javite mi u komentarima u nastavku.




Još ne komentari

O modernoj tehnologiji, jednostavnoj i pristupačnoj.
Vaš vodič u svijetu moderne tehnologije. Naučite kako koristiti tehnologije i uređaje koji nas okružuju svaki dan i naučite kako otkriti zanimljivosti na Internetu.