A Windows Visual C ++ futásidejű hibák javítása

A Windows Visual C ++ futásidejű hibák javítása

A Windows megosztott könyvtárai sokkal hatékonyabbá teszik a programozást azoknak a programozóknak, akiknek nem kell újra feltalálniuk a kereket minden alkalommal, amikor egy közös feladatot végre kell hajtaniuk. Ezenkívül megkönnyítik a biztonsági lyukak betömését a megosztott kódba, amikor megtalálják, mivel azt kevesebb helyen kell javítani, és nem szükséges minden alkalmazás újrafordítása.





E pozitív szempontok ellenére saját problémákat vethetnek fel, amikor megpróbálják elhárítani az általuk generált hibaüzenetek kiváltó okát.





Olvasónk kérdése:

Hogyan javíthatom ki a Windows Vista 32 bites C: Windows explorer.exe problémáját Dell Inspiron 530 készüléken?





Miután a képernyőképen látható párbeszédpanelen az OK gombra kattintott, a képernyő elsötétül, és visszatér a normál működéshez, de nem teszi lehetővé, hogy hozzáférjek a C, D és időnként az E meghajtóhoz, amikor megpróbálom elérni őket a Sajátgépből.

Futás sfc /scannow nem talál hibát. Letöltöttem frissítéseket mind a Dell, mind a Microsoft webhelyéről, megpróbálva kijavítani ezt a problémát. Telepítettem a Microsoft Visual C ++ 2010 Redistributable Package (x86) csomagot is. A PC a Windows Update szerint teljesen naprakész.



Bruce válasza:

Megjegyzés: A Windows 7 és korábbi verziók Windows Intézőjével kapcsolatos megbeszélések a Windows 8 és újabb verziók Fájlkezelőjére is vonatkoznak. Ha figyelemre méltó különbség van közöttük, azt kifejezetten ki kell jelenteni.

A Windows Shell

Windows Explorer van a shell -t, és az explorer.exe folyamatként fut, ahogy a Feladatkezelőben vagy a Sysinternals Process Explorer -ben látható. Sok más Windows programhoz hasonlóan a shell által biztosított összes funkció nincs beépítve az egyetlen végrehajtható fájlba. Több tucat más EXE és DLL fájl létezik a tulajdonságlapok, a tulajdonságkezelők, az előnézeti kezelők, a helyi menük és a Windows Intézőben minden nap használt elemek megvalósításához.





Bővíthető Shell

A héjbővítmények lehetővé teszik a programozók számára, hogy egyszerűen hozzáadjanak funkcionalitást a Windows Intézőhöz úgy, hogy DLL -t írnak a feladat végrehajtásához, és regisztrálják a DLL -t az operációs rendszerben, így az Explorer tudja, hol találja meg a feladat végrehajtásához szükséges kódot. Például, 7-Zip hozzáad egy almenüt a normál helyi menühöz, amely gyors hozzáférést biztosít az archívumkezelési feladatokhoz, a Hard Disk Sentinel ikonfedéseket ad hozzá a szabványos meghajtóikonokhoz, így pillanatok alatt láthatja a meghajtó állapotát, és HashTab új tulajdonságlapot ad hozzá a kiválasztott fájl kivonatainak kiszámításához és megjelenítéséhez.

Ezen héjbővítmények nagy része folyamatban lévő komponensobjektum-modell (COM) szerverként van megvalósítva. Ez azt jelenti, hogy ha egy folyamat, ebben az esetben a Windows Intéző, használja a kiterjesztést, akkor nem jelenik meg a Feladatkezelőben vagy a Folyamatkezelőben külön futó folyamatként, saját folyamatazonosítóval (PID). Ehelyett a hívó explorer.exe folyamaton belül hajt végre.





Alapértelmezett egypéldányos folyamat

A Windows Intéző úgy van írva, hogy képes két külön folyamatként futtatni, de - alapértelmezett konfigurációjában - csak egyetlen példányt fog futtatni. Amikor az indítási folyamat részeként először végrehajtják, létrehozza a Windows asztali környezetét. Az ismételt végrehajtás új szálat hoz létre a meglévő folyamatban, amely az ismerős fájlkezelő ablakot jeleníti meg, ahelyett, hogy új folyamatot indítana.

Ez a viselkedés lehetővé teszi a csökkentett memóriaterületet, de hozhat saját kis fordulatot is a problémák elhárításakor. A kritikus hiba vagy kezeletlen kivétel az explorer.exe folyamatban végrehajtott kódban, beleértve a DLL-ek által biztosított folyamat közbeni kiszolgálókat, az egész asztali környezet leromlását eredményezi.

A legtöbb esetben az asztali folyamat automatikusan újraindul. Ha nem indul újra, akkor is használnia kell a Ctrl-Shift-Esc billentyűt a Feladatkezelő megjelenítéséhez. Innen menjen ide Fájl> Új feladat (futtatás ...)> típus explorer.exe> ​​OK hogy újraindítsa a folyamatot.

Ez egyszerű változtatással elkerülhető. Nyisd ki Windows Intéző> Rendezés> Mappa és keresési lehetőségek Vista/7 -ben. Windows 8 és újabb rendszerek esetén nyissa meg Fájlkezelő> Nézet> Beállítások> Mappa és keresési beállítások módosítása . Válaszd ki a Nézet lap és ellenőrizze Indítsa el a mappaablakokat külön folyamatban .

hogyan lehet megnyitni a psd fájlokat Photoshop nélkül

Ennek a beállításnak a megváltoztatása elkülöníti az asztali folyamatot az összes többi megnyitott Windows Explorer ablakból. Ha az Explorer ablakok közül bármelyik összeomlik, akkor az asztal sértetlen marad.

Microsoft Visual C ++ futásidejű könyvtár (CRT)

A Microsoft Visual C ++ futásidejű könyvtár rutinokat biztosít a Windows programozásához, amelyek számos feladatot automatizálnak, például a bevitelt/kimenetet, a fájlkezelést, a memóriaelosztást, a rendszerhívásokat és még sok mást.

Minden Windows -telepítésnek legalább két különböző CRT verzióját kell telepítenie. Egy frissen épített Vista SP2 Windows 10 gépen 8.0 és 9.0 (VC 2005 és VC 2008) verzió is jelen lesz. További szoftverek telepítésekor a futási idők újabb verzióit is tartalmazhatja, attól függően, hogy a Visual C ++ melyik verzióját használták a program vagy annak bármely összetevőjének létrehozásához.

Futásidejű hibák

Ha hibát vagy kivételt észlel egy kódrészletben, ideális esetben azt a lehető leghamarabb kezeljük az éppen végrehajtó eljárásban, és vagy kijavítjuk, vagy lehetővé teszi a kecses meghibásodást. Ha a hibát nem kezelik helyben, akkor átadják azt a kódot, amely az éppen végrehajtó kódot hívta, és a folyamat a kivétel kezeléséig folytatódik. Ha befejezi a futást a lánc tetejére, és még mindig nem kezelik, futási hibát generál, amint az fent látható.

Amikor a felhasználó az OK gombra kattint, a folyamat megszakad. Ha a program meghatározott hibás viselkedést mutat, például kritikus szolgáltatásokat, vagy futási állapotát egy másik folyamat figyeli, akkor automatikusan újraindítható. Ez történik ebben az esetben. A képernyő elsötétül, amikor az explorer.exe folyamat befejeződik, majd az asztal visszatér, amikor az explorer.exe folyamat újraindul.

Bár a fenti hibaüzenet egyértelműen azt jelzi, hogy az explorer.exe folyamatból származik, nem valószínű, hogy maga az explorer.exe okoz problémát. Sokkal valószínűbb, hogy a bűnös máshol van, például egy harmadik féltől származó bővítményben, amelyet az Explorer használ.

Egyéb szempontok

Olvasónk a probléma fenti leírásával pár további elemet is figyelembe kell vennünk:

  • A baleset idején az Explorer megpróbálta betölteni a listanézetet, de nem tudta.
  • Ha nem tud hozzáférni a meghajtókhoz az asztal újratelepítése után, az azt jelezheti, hogy egy másik folyamatban az egyik vagy több eszköz zárolva van, ezáltal megakadályozva az újonnan létrehozott explorer.exe folyamatból való hozzáférést.
  • Futás sfc /scannow és ha tiszta egészségre tesz szert, a Windows által védett erőforrásokat a lista aljára helyezi megfontolásra. Más okok sokkal valószínűbbek.

A javítások megvannak

Ebben a konkrét esetben három olyan terület van, ahol megoldást keresnék. Az első a Windows Search szolgáltatást, a második a shell kiterjesztések vizsgálatát foglalja magában, az utolsó pedig maguk a VC ++ újraelosztható fájlok.

Mivel az eredeti képernyőképen látható az összeomlás, amikor az Explorer megpróbálja feltölteni a listanézetet, lehetséges, hogy a Windows Search szolgáltatás blokkolja a szükséges erőforrásokhoz való hozzáférést. Láttam ezt, amikor a szolgáltatás összeomlik, és nem rendelkezik a megfelelő újraindítási paraméterekkel.

nyomja meg Win+R> típus services.msc> OK hogy elindítsa a felügyeleti konzolt a szolgáltatások modullal. Görgessen le a Windows Keresés elemhez, és kattintson duplán a bejegyzésre a Tulajdonságok párbeszédpanel megnyitásához. Győződjön meg arról, hogy a Helyreállítás fül beállításai megegyeznek az alábbi képpel.

A leggyakoribb probléma a „Szolgáltatás újraindítása a következő után” beállítás. Ez a hiba gyakran előfordul, ha ez a beállítás nem nulla.

Problémás Shell kiterjesztések

Letöltés Nirsoft ShellExView rendszer architektúrájához (x86 vagy x64) telepítse és futtassa. Egy kis időbe telik, amíg megvizsgálja a rendszert, és kitölti a táblázatot adatokkal. Görgessen a CLSID módosított idő oszlopához, és kattintson a fejlécre a mező rendezéséhez. Ha ki szeretné zárni a Microsoft által biztosított modulokat, lépjen a címre Opciók> Az összes Microsoft -bővítmény elrejtése . Azok számára, akik a Windows 64 bites verzióját használják, érdemes megjeleníteni a 32 bites kiterjesztéseket a rendszeren a Opciók> 32 bites Shell-bővítmények megjelenítése .

Keresse meg azokat a kiterjesztéseket, amelyeket közvetlenül a tünetek megjelenése előtt adtak hozzá. Válasszon ki egyet vagy többet, és nyomja meg a gombot F7 vagy menjen ide Fájl> A kijelölt elemek letiltása , vagy kattintson az eszköztár piros LED ikonjára. Ideális esetben ezt egyenként kell elvégezni.

Tesztelje, hogy a tünetek továbbra is fennállnak -e. Ha igen, akkor újra engedélyezheti a korábban letiltott bővítmény (eke) t a használatával F8 , Fájl> Kijelölt elemek engedélyezése , vagy a zöld LED eszköztár ikonra. Innen tiltsa le a másik kiterjesztést, és ismételje meg a tesztelési folyamatot, amíg meg nem találja a problémát okozó bővítményt.

Javítsa/telepítse újra a VC ++ újraelosztható fájlokat

Ezt végső megoldásként használom, ha csak egy program rúg ki hibákat. Ha több olyan programja van, amelyeknek problémái vannak a VC ++ futásidejű hibákkal, akkor először ezt kell kipróbálnia.

Amikor megnézem a rendszeren telepített programokat ( Vezérlőpult> Programok és szolgáltatások ), az újraelosztható csomagok minden verzióját (és néhány frissítésüket) a 8 -tól a 12 -es verzióig (VC ++ 2005 - VC ++ 2013) mutatja. Az általam használt Microsoft programozási eszközök miatt telepítettem őket. A legtöbb felhasználónak nem lesz mindez.

Megtalálható a legújabb letöltések a Visual C ++ támogatott verzióihoz a Microsoft -tól. Céljaink szerint csak azokkal kell foglalkoznia, amelyek „újraelosztható” csomagként vannak megjelölve. A szervizcsomagnak minősített hivatkozások a programozóeszközökre vonatkoznak, nem csak a futási időkre. Csak azokra lesz szüksége, amelyek jelenleg szerepelnek a rendszer telepített programjaiban. Más verziók telepítése ebben az esetben nem segít. A 64 bites operációs rendszerek felhasználóinak szüksége lehet a CRT x86 és x64 verzióira is.

A Windows Update ellenőrzi, hogy a számítógépre telepítve vannak -e ezekhez a csomagokhoz a legújabb frissítések, de nem ellenőrzi, hogy megfelelően van -e telepítve, és nem sérült -e. A telepítők ellenőrizhetik, hogy minden futásidejű fájl a megfelelő, és minden beállításjegyzék -bejegyzés helyes.

Miután letöltötte a megfelelő telepítőket, futtassa őket a rendszeren. A 2005 -ös verziók a csomag újratelepítése előtt felszólítják a licencszerződés elfogadására. Az összes többi rendelkezik GUI -val, amely megkérdezi, hogy meg akarja -e javítani vagy eltávolítani a meglévő telepítést. A legtöbb esetben egy javítási művelet megoldja a problémákat.

Ha a legszélsőségesebb módszert szeretné kipróbálni, távolítsa el a futási időket, indítsa újra a gépet, majd telepítse újra. Nem ajánlom ezt a módszert a 2005 -ös és a 2008 -as futásidőben. Nélkülük a Windows sok hibát generál, és sok funkció nem lesz elérhető az újraindításkor.

Következtetés

Egy kis megfigyeléssel, némi kísérletezéssel és hibával, valamint annak némi megértésével, hogy a rendszer futási idejéből hogyan keletkeznek hibák, a szoftverproblémák megtalálhatók és megoldhatók anélkül, hogy bonyolult hibakeresési eszközöket és naplókat kellene igénybe venni.

Futási hibákba ütközött a rendszeren? Mi kellett ezek megoldásához? Tudassa velem az alábbi megjegyzésekben.

Részvény Részvény Csipog Email Ezért adott ki figyelmeztetést az FBI a Hive Ransomware -re

Az FBI figyelmeztetést adott ki egy különösen csúnya ransomware -törzs miatt. Ezért kell különösen óvatosnak lennie a Hive ransomware -el szemben.

Olvassa tovább
Kapcsolódó témák
  • ablakok
  • Technológia magyarázata
  • Kérdezze meg a szakértőket
  • Windows Explorer
  • ablakok
  • Fájlkezelő
  • Windows Keresés
  • Hibaelhárítás
A szerzőről Bruce Epper(13 cikk megjelent)

Bruce a 70 -es évek óta játszik az elektronikával, a 80 -as évek eleje óta a számítógépekkel, és pontosan válaszol a technológiával kapcsolatos kérdésekre, amelyeket nem használt és nem is látott egész idő alatt. Bosszantja magát azzal is, hogy gitározni próbál.

Továbbiak Bruce Epper -től

Iratkozzon fel hírlevelünkre

Csatlakozz hírlevelünkhöz, ahol technikai tippeket, értékeléseket, ingyenes e -könyveket és exkluzív ajánlatokat találsz!

Feliratkozáshoz kattintson ide