Kā novērst Windows Visual C ++ izpildlaika kļūdas

Kā novērst Windows Visual C ++ izpildlaika kļūdas

Koplietojamās bibliotēkas sistēmā Windows padara programmēšanu daudz efektīvāku programmētājam, kuram nav nepieciešams no jauna izgudrot riteni katru reizi, kad viņam jāveic kāds kopīgs uzdevums. Tie arī atvieglo drošības caurumu aizbāzīšanu koplietotajā kodā, kad tie tiek atrasti, jo tas ir jālabo mazākās vietās un neprasa, lai katra lietojumprogramma tiktu pārkompilēta.





Neskatoties uz šiem pozitīvajiem aspektiem, viņi var radīt savas problēmas, mēģinot novērst to radīto kļūdu ziņojumu galveno cēloni.





Mūsu lasītāja jautājums:

Kā labot Windows Vista 32 bitu C: Windows explorer.exe problēmu Dell Inspiron 530?





Pēc noklikšķināšanas uz pogas Labi ekrānuzņēmumā redzamajā dialoglodziņā ekrāns kļūst melns un atgriežas normālā darbībā, taču tas neļauj piekļūt C, D un reizēm E diskam, mēģinot tiem piekļūt no Mana datora.

Skriešana sfc /scannow neatrod kļūdas. Es lejupielādēju atjauninājumus gan no Dell, gan Microsoft vietnēm, mēģinot novērst šo problēmu. Esmu instalējis arī Microsoft Visual C ++ 2010 Redistributable Package (x86). Saskaņā ar Windows atjauninājumu dators ir pilnībā atjaunināts.



Brūsa atbilde:

Piezīme. Diskusijas par Windows Explorer operētājsistēmā Windows 7 un vecākās versijās attiecas arī uz failu pārlūku operētājsistēmā Windows 8 un jaunākās versijās. Ja starp tām ir ievērojama atšķirība, tas tiks skaidri norādīts.

Windows apvalks

Windows Explorer ir apvalks un darbojas kā process explorer.exe, kā redzams uzdevumu pārvaldniekā vai Sysinternals procesu izpētē. Tāpat kā daudzas citas Windows programmas, visas čaulas sniegtās funkcijas nav iekļautas vienā izpildāmajā failā. Ir desmitiem citu EXE un DLL failu, ko izmanto, lai ieviestu rekvizītu lapas, īpašumu apstrādātājus, priekšskatījuma apstrādātājus, konteksta izvēlnes un daudzus citus elementus, kurus katru dienu izmantojat pārlūkprogrammā Windows Explorer.





Paplašināms apvalks

Shell paplašinājumi ļauj programmētājiem viegli pievienot funkcionalitāti Windows Explorer, rakstot DLL uzdevuma veikšanai un reģistrējot DLL operētājsistēmā, tāpēc Explorer zina, kur atrast kodu uzdevuma veikšanai. Piemēram, 7-rāvējslēdzējs pievieno standarta apakšizvēlni standarta konteksta izvēlnei, nodrošinot ātru piekļuvi arhīvu apstrādes uzdevumiem, cietais disks Sentinel pievieno ikonu pārklājumus standarta diska ikonām, lai jūs varētu uzreiz redzēt diska veselības stāvokli, un HashTab pievieno jaunu rekvizītu lapu, lai aprēķinātu un parādītu atlasītā faila jaucējkrānus.

Daudzi no šiem apvalku paplašinājumiem tiek ieviesti kā procesā esošie komponentu objektu modeļa (COM) serveri. Tas nozīmē, ka tad, kad process, šajā gadījumā Windows Explorer, izmanto paplašinājumu, tas netiks parādīts uzdevumu pārvaldniekā vai procesa pārlūkā kā atsevišķs darbības process ar savu procesa identifikatoru (PID). Tā vietā tas tiek izpildīts izsaucēja explorer.exe procesā.





Noklusējuma vienas instances process

Windows Explorer ir rakstīts tā, ka to var darbināt kā divus atsevišķus procesus, taču noklusējuma konfigurācijā tas darbosies tikai vienā instancē. Kad tas pirmo reizi tiek izpildīts kā daļa no palaišanas procesa, tas rada Windows darbvirsmas vidi. Atkārtoti izpildot, tiek izveidots jauns pavediens esošajā procesā, kas parāda pazīstamo failu pārvaldības logu, nevis sāk jaunu procesu.

Šāda rīcība ļauj samazināt atmiņas nospiedumu, bet var arī radīt nelielu pavērsienu problēmu novēršanā. Kritiska kļūda vai neapstrādāts izņēmums kodā, kas tiek izpildīts pārlūkprogrammā explorer.exe, ieskaitot DLL nodrošinātos procesa serverus, izraisīs visas darbvirsmas vides pazemināšanos.

Vairumā gadījumu darbvirsmas process tiks automātiski restartēts. Ja tas netiek restartēts, jums joprojām vajadzētu būt iespējai izmantot Ctrl-Shift-Esc, lai atvērtu uzdevumu pārvaldnieku. No turienes dodieties uz Fails> Jauns uzdevums (palaist ...)> tipa explorer.exe> ​​Labi lai restartētu procesu.

To var izvairīties, veicot vienkāršas izmaiņas. Atvērt Windows Explorer> Kārtot> Mapes un meklēšanas iespējas Vista/7. Operētājsistēmai Windows 8 un jaunākām versijām atveriet Failu pārlūks> Skats> Opcijas> Mainīt mapi un meklēšanas opcijas . Izvēlieties Cilne Skats un pārbaudiet Palaidiet mapju logus atsevišķā procesā .

kā izdzēst vecos Windows atjauninājumus

Mainot šo iestatījumu, darbvirsmas process tiek izolēts no visiem citiem atvērtajiem Windows Explorer logiem. Ja kāds no šiem Explorer logiem avarē, jūsu darbvirsma paliks neskarta.

Microsoft Visual C ++ izpildlaika bibliotēka (CRT)

Microsoft Visual C ++ izpildlaika bibliotēka nodrošina rutīnas Windows programmēšanai, kas automatizē daudzus uzdevumus, piemēram, ievadi/izvadi, manipulācijas ar failiem, atmiņas piešķiršanu, sistēmas zvanus un daudzus citus.

Katrā Windows instalācijā būs instalētas vismaz divas dažādas CRT versijas. Tikko uzbūvētajai Vista SP2, izmantojot Windows 10 mašīnu, būs pieejama gan versija 8.0, gan 9.0 (attiecīgi VC 2005 un VC 2008). Kad ir instalēta papildu programmatūra, tā var ietvert arī jaunākas izpildlaika versijas atkarībā no tā, kura Visual C ++ versija tika izmantota, lai izveidotu programmu vai kādu no tās sastāvdaļām.

Izpildlaika kļūdas

Ja koda daļā tiek konstatēta kļūda vai izņēmums, ideālā gadījumā tā tiks apstrādāta pēc iespējas ātrāk pašreizējā izpildes procedūrā, un tā tiks vai nu izlabota, vai pieļauta gracioza kļūme. Ja kļūda netiek apstrādāta lokāli, tā tiek nodota kodam, kas izsauca pašlaik izpildāmo kodu, un process turpinās, līdz tiek apstrādāts izņēmums. Ja tas pabeidz darbību ķēdes augšdaļā un joprojām netiek apstrādāts, tas ģenerēs izpildlaika kļūdu, kā redzams iepriekš.

Kad lietotājs noklikšķina uz pogas Labi, process tiks pārtraukts. Ja programmai ir noteikta kļūmes uzvedība, piemēram, kritiski pakalpojumi, vai tās izpildes stāvokli uzrauga cits process, to var automātiski atjaunot. Tas ir tas, kas notiek šajā gadījumā. Ekrāns aptumšojas, kad tiek pārtraukts process explorer.exe, un darbvirsma atgriežas, kad explorer.exe process tiek restartēts.

Lai gan iepriekš minētais kļūdas ziņojums skaidri norāda, ka tas radies no pārlūkprogrammas explorer.exe, visticamāk, tā nav problēma ar pašu explorer.exe. Ir daudz lielāka iespēja, ka vaininieks ir citur, piemēram, trešās puses paplašinājumā, ko izmanto Explorer.

Citi apsvērumi

Ņemot vērā mūsu lasītāja iepriekš aprakstīto problēmu, ir jāņem vērā vēl daži papildu vienumi:

  • Avārijas brīdī Explorer mēģināja, bet nespēja aizpildīt saraksta skatu.
  • Nespēja piekļūt diskdziņiem pēc darbvirsmas atjaunošanas var norādīt, ka citā procesā viena vai vairākas no šīm ierīcēm ir bloķētas, tādējādi neļaujot piekļūt jaunizveidotajam explorer.exe procesam.
  • Skriešana sfc /scannow un iegūstot tīru veselības rēķinu, Windows aizsargātie resursi nokrīt saraksta beigās. Citi cēloņi ir daudz ticamāki.

Labojumi ir pieejami

Šajā konkrētajā gadījumā ir trīs jomas, kurās es meklētu risinājumu. Pirmais ietver Windows meklēšanas pakalpojumu, otrais ietver čaulas paplašinājumu izpēti, un pēdējais būtu paši VC ++ pārdalāmie faili.

Tā kā sākotnējais ekrānuzņēmums parāda avāriju, kas rodas, kad Explorer mēģina aizpildīt saraksta skatu, iespējams, ka Windows meklēšanas pakalpojums bloķē piekļuvi nepieciešamajiem resursiem. Esmu redzējis, ka tas notiek, kad pakalpojums avarē un tam nav pareizu restartēšanas parametru.

Nospiediet Win+R> tipa services.msc> Labi lai palaistu pārvaldības konsoli ar pakalpojumu moduli. Ritiniet uz leju līdz Windows meklēšanai un veiciet dubultklikšķi uz ieraksta, lai atvērtu dialoglodziņu Rekvizīti. Pārliecinieties, vai cilnes Atkopšana iestatījumi atbilst tālāk redzamajam attēlam.

Visizplatītākā problēma ir iestatījums “Restartēt pakalpojumu pēc:”. Šī kļūda bieži rodas, ja šis iestatījums nav nulle.

Problemātiski čaulas paplašinājumi

Lejupielādēt Nirsoft ShellExView sistēmas arhitektūrai (x86 vai x64), instalējiet un palaidiet to. Sistēmas pārbaude un tabulas aizpildīšana ar datiem prasīs nedaudz laika. Ritiniet līdz kolonnai CLSID modificētais laiks un noklikšķiniet uz galvenes, lai kārtotu šo lauku. Ja vēlaties izslēgt Microsoft piedāvātos moduļus, varat doties uz Iespējas> Slēpt visus Microsoft paplašinājumus . Tiem, kas izmanto Windows 64 bitu versiju, iespējams, vēlēsities parādīt sistēmas 32 bitu paplašinājumus, dodoties uz Iespējas> Rādīt 32 bitu čaulas paplašinājumus .

Meklējiet paplašinājumus, kas tika pievienoti tieši pirms simptomu parādīšanās. Izvēlieties vienu vai vairākus un nospiediet F7 vai doties uz Fails> Atspējot atlasītos vienumus vai rīkjoslā noklikšķiniet uz sarkanās gaismas diodes ikonas. Ideālā gadījumā tas jādara pa vienam.

Pārbaudiet, vai simptomi saglabājas. Ja viņi to dara, varat atkārtoti iespējot iepriekš atspējoto (-os) paplašinājumu (-us), izmantojot F8 , Fails> Iespējot atlasītos vienumus vai zaļā LED rīkjoslas ikona. No šejienes atspējojiet citu paplašinājumu un atkārtojiet pārbaudes procesu, līdz atrodat problēmu izraisošo.

Labojiet/pārinstalējiet VC ++ pārdalāmos failus

Es to izmantoju kā pēdējo līdzekli, ja tikai viena programma izslēdz kļūdas. Ja jums ir vairākas programmas, kurām ir problēmas ar VC ++ izpildlaika kļūdām, vispirms varat to izmēģināt.

Aplūkojot manā sistēmā instalētās programmas ( Vadības panelis> Programmas un līdzekļi ), tas parāda katru izplatāmo pakotņu versiju (un dažus to atjauninājumus), sākot no 8. līdz 12. versijai (VC ++ 2005 līdz VC ++ 2013). Man tie ir instalēti, jo izmantoju Microsoft programmēšanas rīkus. Lielākajai daļai lietotāju tas viss nebūs pieejams.

Jūs varat atrast jaunākās lejupielādētās versijas Visual C ++ no Microsoft. Šajā nolūkā jums jāuztraucas tikai par tiem, kas ir apzīmēti kā “pārdalāmi” iepakojumi. Saites, kas klasificētas kā servisa pakotnes, ir paredzētas programmēšanas rīkiem, nevis vienkārši izpildlaika laikam. Jums būs nepieciešami tikai tie, kas pašlaik ir uzskaitīti jūsu sistēmas instalētajās programmās. Citu versiju instalēšana šajā gadījumā nepalīdzēs. 64 bitu operētājsistēmu lietotājiem var būt nepieciešamas gan CRT x86, gan x64 versijas.

Windows atjaunināšana pārbauda, ​​vai jūsu datorā ir instalēti šo pakotņu jaunākie atjauninājumi, taču netiek pārbaudīts, vai tas ir pareizi instalēts un vai tas nav bojāts. Instalētāji var pārbaudīt, vai visi izpildlaika faili ir pareizi un visi reģistra ieraksti ir pareizi.

Kad esat lejupielādējis atbilstošos instalētājus, palaidiet tos sistēmā. 2005. gada versijas liks jums apstiprināt licences līgumu pirms pakotnes atkārtotas instalēšanas. Visiem pārējiem ir GUI, kas jautās, vai vēlaties labot vai atinstalēt esošo instalāciju. Vairumā gadījumu remonts novērsīs visas problēmas.

Ja vēlaties izmēģināt ekstrēmāko metodi, varat atinstalēt izpildlaiku, pārstartēt iekārtu un pēc tam pārinstalēt. Es neiesaku šo metodi 2005. un 2008. gada darbības laikā. Bez tiem sistēma Windows radīs daudz kļūdu, un, atsāknējot, jums nebūs daudz funkcionalitātes.

Secinājums

Ar nelielu novērojumu, izmēģinājumu un kļūdu pieskārienu un zināmu izpratni par to, kā sistēmas darbības laikā tiek ģenerētas kļūdas, programmatūras problēmas var atrast un atrisināt, neizmantojot sarežģītus atkļūdošanas rīkus un žurnālus.

Vai jūsu sistēmā ir radušās izpildlaika kļūdas? Kas bija vajadzīgs, lai tos atrisinātu? Paziņojiet man zemāk esošajos komentāros.

Kopīgot Kopīgot Čivināt E -pasts Lūk, kāpēc FIB izdeva brīdinājumu par Hive Ransomware

FIB izdeva brīdinājumu par īpaši nepatīkamu izpirkuma programmatūras celmu. Lūk, kāpēc jums īpaši jāuzmanās no Hive izpirkuma programmatūras.

Lasīt Tālāk
Saistītās tēmas
  • Windows
  • Izskaidrota tehnoloģija
  • Jautājiet ekspertiem
  • Windows Explorer
  • Windows
  • Failu pārlūks
  • Windows meklēšana
  • Traucējummeklēšana
Par autoru Brūss Epers(Publicēti 13 raksti)

Brūss ir spēlējis ar elektroniku kopš 70. gadiem, datoriem kopš 80. gadu sākuma un precīzi atbildējis uz jautājumiem par tehnoloģijām, kuras viņš nav izmantojis un nav redzējis visu laiku. Viņš arī kaitina sevi, mēģinot spēlēt ģitāru.

Vairāk no Bruce Epper

Abonējiet mūsu biļetenu

Pievienojieties mūsu informatīvajam izdevumam, lai iegūtu tehniskus padomus, pārskatus, bezmaksas e -grāmatas un ekskluzīvus piedāvājumus!

Noklikšķiniet šeit, lai abonētu