Πώς να διορθώσετε τα σφάλματα χρόνου εκτέλεσης Visual C ++ των Windows

Τα Visual C ++ Errors είναι ένα κοινό πρόβλημα για τους χρήστες των Windows. Αλλά ξέρετε πώς να τα διορθώσετε;

Τα Visual C ++ Errors είναι ένα κοινό πρόβλημα για τους χρήστες των Windows.  Αλλά ξέρετε πώς να τα διορθώσετε;
Διαφήμιση

Οι κοινές βιβλιοθήκες στα Windows καθιστούν τον προγραμματισμό πολύ πιο αποτελεσματικό για τον προγραμματιστή που δεν χρειάζεται να επανεφεύρει τον τροχό κάθε φορά που χρειάζεται να εκτελέσει μια κοινή εργασία. Επίσης, διευκολύνουν την προσάρτηση τρυπών ασφαλείας σε κοινόχρηστο κώδικα όταν εντοπίζονται, αφού χρειάζεται να διορθωθούν σε λιγότερα μέρη και δεν απαιτεί την ανασυγκρότηση κάθε εφαρμογής.

Παρά τις θετικές αυτές πτυχές, μπορούν να δημιουργήσουν τα δικά τους προβλήματα κατά την προσπάθεια αντιμετώπισης της αιτίας των μηνυμάτων σφάλματος που μπορεί να δημιουργήσουν.

Ερώτηση του Αναγνώστη μας:

Πώς μπορώ να διορθώσω ένα πρόβλημα C: \ Windows \ explorer.exe των Windows Vista 32 bit στο Dell Inspiron 530;

Αφού κάνετε κλικ στο πλήκτρο OK στο παράθυρο διαλόγου που εμφανίζεται στο στιγμιότυπο οθόνης, η οθόνη θα μαυρίσει και θα επιστρέψει στην κανονική λειτουργία, αλλά δεν θα μου επιτρέψει να έχω πρόσβαση στις μονάδες C, D και κατά καιρούς στην μονάδα E όταν προσπαθώ να τις αποκτήσω από τον υπολογιστή μου.

Η λειτουργία sfc / scannow δεν εντοπίζει σφάλματα. Κατέβασα ενημερώσεις από τους ιστότοπους της Dell και της Microsoft προσπαθώντας να διορθώσω αυτό το πρόβλημα. Έχω επίσης εγκαταστήσει το πακέτο Redistributable Microsoft Visual C ++ 2010 (x86). Ο υπολογιστής είναι εντελώς ενημερωμένος σύμφωνα με το Windows Update.

σφάλμα χρόνου εκτέλεσης

Απάντηση του Bruce:

Σημείωση: Οι συζητήσεις για την Εξερεύνηση των Windows στα Windows 7 και παλαιότερες εκδόσεις ισχύουν επίσης για το File Explorer στα Windows 8 και σε νεότερες εκδόσεις. Εάν υπάρχει μια αξιοσημείωτη διαφορά μεταξύ τους, θα αναφέρεται ρητά.

Το Windows Shell

Η Εξερεύνηση των Windows είναι το κέλυφος και τρέχει ως διαδικασία explorer.exe όπως φαίνεται στο Task Manager ή Process Explorer του Explorer Process Explorer - Η πιο ισχυρή αντικατάσταση διαχειριστή εργασιών [Windows] Explorer Process - Η πιο ισχυρή αντικατάσταση του Task Manager [Windows] Ας είμαστε ειλικρινείς, ο Διαχειριστής εργασιών των Windows δεν είναι τόσο καλός για την κατανόηση και τη διαχείριση των διαδικασιών που εκτελούνται στον υπολογιστή σας. Ακόμη και στα Windows 8, όπου είναι πολύ βελτιωμένη, ο διαχειριστής εργασιών δεν μπορεί να έρθει κοντά στο ... Διαβάστε περισσότερα. Όπως πολλά άλλα προγράμματα των Windows, όλες οι λειτουργίες που παρέχονται από το κέλυφος δεν ενσωματώνονται στο συγκεκριμένο εκτελέσιμο αρχείο. Υπάρχουν αρκετές δεκάδες άλλων αρχείων EXE και DLL Πώς να διορθώσετε λείπει αρχεία DLL Λάθη Πώς να διορθώσετε λείπουν αρχεία DLL Λάθη Διαβάστε περισσότερα χρησιμοποιούνται για την εφαρμογή φύλλων ιδιοτήτων, χειριστές ιδιοτήτων, χειριστές προεπισκόπησης, μενού περιβάλλοντος και πολλά άλλα στοιχεία που χρησιμοποιείτε στην Εξερεύνηση των Windows ημέρα.

Επεκτάσιμη Shell

Οι επεκτάσεις Shell επιτρέπουν στους προγραμματιστές να προσθέτουν εύκολα λειτουργικότητα στην Εξερεύνηση των Windows γράφοντας ένα DLL για να εκτελέσουν την εργασία και να καταχωρήσουν το DLL με το λειτουργικό σύστημα, έτσι ο Explorer ξέρει πού να βρει τον κώδικα για να ολοκληρώσει την εργασία. Για παράδειγμα, 7-Zip Πώς να εξαγάγετε αρχεία από ZIP, RAR, 7z και άλλα κοινά αρχεία Πώς να εξαγάγετε αρχεία από ZIP, RAR, 7z και άλλα κοινά αρχεία Ήταν ποτέ αντιμέτωπος με ένα αρχείο .rar και αναρωτήθηκε πώς να το ανοίξετε; Ευτυχώς, η διαχείριση αρχείων ZIP και άλλων συμπιεσμένων αρχείων είναι απλή με τα κατάλληλα εργαλεία. Εδώ είναι τι πρέπει να ξέρετε. Το Read More προσθέτει ένα δευτερεύον μενού στο τυπικό μενού περιβάλλοντος, παρέχοντας γρήγορη πρόσβαση σε εργασίες αρχειοθέτησης, Sentinel σκληρού δίσκου Παρακολουθήστε το σκληρό σας δίσκο & SSD Υγεία με Sentinel σκληρού δίσκου Παρακολουθήστε την υγεία του σκληρού δίσκου & SSD σας με σκληρό δίσκο Sentinel Είχατε ποτέ αποτυχία στο δίσκο; Δυστυχώς, δεν υπάρχει πανάκεια για την πρόληψη ζημιών υλικού. Αλλά η παρακολούθηση του σκληρού σας δίσκου ή του SSD, για να ενεργήσετε όταν είναι πιθανό ο θάνατός του, είναι ένα πρώτο βήμα. Ανάγνωση Περισσότερα προσθέτει επικαλύψεις εικονιδίων στα στάνταρ εικονίδια κίνησης, έτσι ώστε να μπορείτε να δείτε την κατάσταση της κατάστασης της μονάδας με μια ματιά και το HashTab προσθέτει ένα νέο φύλλο ιδιότητας, για να υπολογίζει και να εμφανίζει τα hashes του επιλεγμένου αρχείου.

κατάλογος συμφραζόμενων

Πολλές από αυτές τις επεκτάσεις κελύφους υλοποιούνται ως διακομιστές Component Object Model (COM). Αυτό σημαίνει ότι όταν μια διεργασία, στην περίπτωση αυτή η Εξερεύνηση των Windows, χρησιμοποιεί την επέκταση, δεν θα εμφανιστεί στη Διαχείριση Εργασιών ή Process Explorer ως ξεχωριστή διαδικασία λειτουργίας με το δικό της αναγνωριστικό διαδικασίας (PID). Αντίθετα, εκτελείται εντός της διεργασίας κλήσης explorer.exe.

Προεπιλεγμένη διαδικασία ενιαίας κατάστασης

Η Εξερεύνηση των Windows γράφεται για να μπορεί να εκτελείται ως δύο ξεχωριστές διεργασίες, αλλά - στην προεπιλεγμένη διαμόρφωσή της - θα εκτελεί μόνο μία μοναδική εμφάνιση. Όταν εκτελείται για πρώτη φορά ως μέρος της διαδικασίας εκκίνησης, δημιουργεί το περιβάλλον εργασίας των Windows. Η εκτέλεση του ξανά δημιουργεί ένα νέο νήμα στην υπάρχουσα διαδικασία, η οποία εμφανίζει το οικείο παράθυρο διαχείρισης αρχείων, αντί να ξεκινήσει μια νέα διαδικασία.

Αυτή η συμπεριφορά επιτρέπει ένα μειωμένο αποτύπωμα μνήμης, αλλά μπορεί επίσης να φέρει τη δική του μικρή συστροφή όταν αντιμετωπίζει προβλήματα αντιμετώπισης προβλημάτων. Ένα κρίσιμο σφάλμα ή μια μη επεξεργασμένη εξαίρεση στον κώδικα που εκτελείται στη διεργασία explorer.exe, συμπεριλαμβανομένων των διακομιστών εν λειτουργία που παρέχονται από τα DLLs, θα προκαλέσει την καθυστέρηση ολόκληρου του περιβάλλοντος επιφάνειας εργασίας.

Στις περισσότερες περιπτώσεις, η διαδικασία της επιφάνειας εργασίας θα επανεκκινηθεί αυτόματα. Εάν δεν γίνει επανεκκίνηση, θα πρέπει να μπορείτε να χρησιμοποιήσετε το Ctrl-Shift-Esc για να εμφανίσετε το Task Manager. Από εκεί, πηγαίνετε στο File> New Task (Εκτέλεση ...)> πληκτρολογήστε explorer.exe> ​​OK για να επανεκκινήσετε τη διαδικασία.

Αυτό μπορεί να αποφευχθεί με μια απλή αλλαγή. Ανοίξτε την Εξερεύνηση των Windows> Οργάνωση> Φάκελος και επιλογές αναζήτησης στο Vista / 7. Για τα Windows 8 και νεότερα, ανοίξτε το File Explorer> Προβολή> Επιλογές> Αλλαγή φακέλων και επιλογών αναζήτησης . Επιλέξτε την καρτέλα Προβολή και ελέγξτε τα παράθυρα του φακέλου εκκίνησης σε ξεχωριστή διαδικασία .

επιλογές φακέλου

Η αλλαγή αυτής της ρύθμισης απομονώνει τη διαδικασία της επιφάνειας εργασίας σας από όλα τα άλλα παράθυρα του Windows Explorer που έχετε ανοίξει. Εάν κάποιο από αυτά τα παράθυρα του Explorer σπαταλάει, η επιφάνεια εργασίας σας θα παραμείνει αλώβητη.

Βιβλιοθήκη χρόνου εκτέλεσης της Microsoft Visual C ++ (CRT)

Η Microsoft Visual C ++ Runtime Library παρέχει ρουτίνες προγραμματισμού των Windows που αυτοματοποιούν πολλές εργασίες, όπως είσοδο / έξοδο, χειρισμός αρχείων, κατανομή μνήμης, κλήσεις συστήματος και πολλά άλλα.

Κάθε εγκατάσταση των Windows θα έχει τουλάχιστον δύο διαφορετικές εκδόσεις του CRT εγκατεστημένο. Ένα πρόσφατα κατασκευασμένο Vista SP2 μέσω Windows 10 μηχανή θα έχει και την έκδοση 8.0 και 9.0 (VC 2005 και VC 2008, αντίστοιχα). Όταν εγκατασταθεί πρόσθετο λογισμικό, μπορεί επίσης να περιλαμβάνει πιο πρόσφατες εκδόσεις των χρόνων εκτέλεσης, ανάλογα με την έκδοση του Visual C ++ που χρησιμοποιήθηκε για τη δημιουργία του προγράμματος ή οποιουδήποτε από τα συστατικά του.

Σφάλματα χρόνου εκτέλεσης

Όταν ένα σφάλμα ή μια εξαίρεση συναντάται σε ένα κομμάτι κώδικα, ιδανικά θα αντιμετωπιστεί το συντομότερο δυνατό στην τρέχουσα διαδικασία εκτέλεσης και είτε θα διορθωθεί είτε θα επιτρέψει μια χαριτωμένη αποτυχία. Εάν το σφάλμα δεν αντιμετωπιστεί τοπικά, μεταβιβάζεται στον κώδικα που καλείται ο τρέχων κώδικας εκτέλεσης και η διαδικασία συνεχίζεται μέχρι να αντιμετωπιστεί η εξαίρεση. Αν ολοκληρώσει την εκτέλεσή της στην κορυφή της αλυσίδας και εξακολουθεί να μην χειρίζεται, θα δημιουργήσει ένα σφάλμα χρόνου εκτέλεσης όπως φαίνεται παραπάνω.

Όταν ο χρήστης κάνει κλικ στο κουμπί OK, η διαδικασία τερματίζεται. Εάν το πρόγραμμα έχει μια καθορισμένη συμπεριφορά αποτυχίας, όπως κρίσιμες υπηρεσίες, ή η κατάσταση λειτουργίας του παρακολουθείται από μια άλλη διαδικασία, μπορεί να απορριφθεί αυτόματα. Αυτό συμβαίνει στην περίπτωση αυτή. Η οθόνη σβήνει όταν τερματιστεί η διαδικασία explorer.exe και, στη συνέχεια, η επιφάνεια εργασίας επανέρχεται όταν ξεκινά ξανά η διαδικασία explorer.exe.

Αν και το μήνυμα σφάλματος παραπάνω δείχνει σαφώς ότι προέρχεται από τη διαδικασία explorer.exe, δεν είναι πιθανό να είναι ένα πρόβλημα με το explorer.exe. Είναι πολύ πιθανότερο ο ένοχος να βρίσκεται αλλού, όπως μια επέκταση τρίτου μέρους που χρησιμοποιείται από τον Explorer.

Άλλες εκτιμήσεις

Με την περιγραφή του παραπάνω θέματος από τον αναγνώστη μας, υπάρχουν μερικά επιπλέον στοιχεία που πρέπει να λάβουμε υπόψη:

  • Κατά τη στιγμή της συντριβής, ο Explorer προσπαθούσε, αλλά δεν μπόρεσε να γεμίσει την προβολή λίστας.
  • Η αδυναμία πρόσβασης στις μονάδες μετά την αναπνοή της επιφάνειας εργασίας ενδέχεται να υποδεικνύει ότι μια άλλη διαδικασία έχει κλειδώσει μία ή περισσότερες από αυτές τις συσκευές, αποτρέποντας έτσι την πρόσβαση από τη διαδικασία που δημιουργήθηκε πρόσφατα στο explorer.exe.
  • Η εκτέλεση του sfc / scannow και η λήψη ενός καθαρού λογαριασμού υγείας, αφήνει τους προστατευμένους πόρους των Windows στο κάτω μέρος της λίστας για εξέταση. Άλλες αιτίες είναι πολύ πιο πιθανές.

Τα Fixes Are In

Στη συγκεκριμένη περίπτωση, υπάρχουν τρεις τομείς όπου θα ήθελα να βρω μια λύση. Το πρώτο περιλαμβάνει την υπηρεσία αναζήτησης των Windows, η δεύτερη αφορά την διερεύνηση επεκτάσεων κελύφους και οι τελευταίες θα είναι οι ίδιες οι αναδιανεμητές VC ++.

Αναζήτηση των Windows

Επειδή το αρχικό στιγμιότυπο οθόνης δείχνει τη συντριβή που συμβαίνει όταν η Explorer προσπαθεί να συμπληρώσει την προβολή λίστας, είναι πιθανό η υπηρεσία αναζήτησης των Windows να αποκλείει την πρόσβαση στους απαιτούμενους πόρους. Έχω δει αυτό να συμβεί όταν η υπηρεσία διακοπεί και δεν έχει τις σωστές παραμέτρους επανεκκίνησης.

Πατήστε Win + R> πληκτρολογήστε services.msc> OK για να ξεκινήσετε την κονσόλα διαχείρισης με τη λειτουργική μονάδα. Κάντε κύλιση προς τα κάτω στην Αναζήτηση των Windows και κάντε διπλό κλικ στην καταχώρηση για να ανοίξετε το παράθυρο διαλόγου Ιδιότητες. Βεβαιωθείτε ότι οι ρυθμίσεις στην καρτέλα Ανάκτηση αντιστοιχούν στην παρακάτω εικόνα.

παράθυρα-αναζήτηση-ιδιότητες

Το πιο κοινό πρόβλημα είναι η ρύθμιση "Επανεκκίνηση μετά από:". Αυτό το σφάλμα εμφανίζεται συχνά όταν αυτή η ρύθμιση είναι μηδενική.

Προβληματικές επεκτάσεις Shell

Κατεβάστε το ShellExView της Nirsoft για την αρχιτεκτονική του συστήματός σας (x86 ή x64), εγκαταστήστε και εκτελέστε το. Θα χρειαστεί λίγος χρόνος για να εξετάσετε το σύστημα και να συμπληρώσετε τον πίνακα με τα δεδομένα. Μεταβείτε στην κολόνα τροποποιημένου χρόνου CLSID και κάντε κλικ στην κεφαλίδα για ταξινόμηση σε αυτό το πεδίο. Εάν θέλετε να αποκλείσετε τις ενότητες που παρέχονται από τη Microsoft, μπορείτε να μεταβείτε στην επιλογή Επιλογές> Απόκρυψη όλων των επεκτάσεων της Microsoft . Για όσους χρησιμοποιούν μια έκδοση 64 bit των Windows, μπορεί επίσης να θέλετε να εμφανίσετε τις επεκτάσεις 32-bit στο σύστημα μεταβαίνοντας στο Επιλογές> Εμφάνιση επεκτάσεων Shell 32-bit .

Αναζητήστε τις επεκτάσεις που προστέθηκαν λίγο πριν ξεκινήσουν τα συμπτώματα. Επιλέξτε ένα ή περισσότερα και πατήστε F7 ή πηγαίνετε στο Αρχείο> Απενεργοποίηση επιλεγμένων αντικειμένων ή κάντε κλικ στο κόκκινο εικονίδιο LED στη γραμμή εργαλείων. Στην ιδανική περίπτωση, αυτό πρέπει να γίνεται μία φορά τη φορά.

Ελέγξτε εάν τα συμπτώματα επιμένουν. Εάν το κάνουν, μπορείτε να ενεργοποιήσετε ξανά τις παλαιότερες απενεργοποιημένες παραμέτρους χρησιμοποιώντας το αρχείο F8, Αρχείο> Ενεργοποίηση επιλεγμένων στοιχείων ή το εικονίδιο της πράσινης λυχνίας LED. Από εδώ, απενεργοποιήστε μια διαφορετική επέκταση και επαναλάβετε τη διαδικασία δοκιμής μέχρι να βρείτε εκείνη που προκαλεί το πρόβλημα.

Επισκευή / Επανεγκατάσταση VC ++ Redistributables

Θα το χρησιμοποιήσω ως έσχατη λύση, εάν μόνο ένα πρόγραμμα εκδιώξει λάθη. Εάν έχετε πολλά προγράμματα που αντιμετωπίζουν προβλήματα με σφάλματα χρόνου εκτέλεσης VC ++, ίσως να θέλετε να το δοκιμάσετε πρώτα.

Όταν εξετάζω τα εγκατεστημένα προγράμματα στο σύστημά μου ( Πίνακας Ελέγχου> Προγράμματα και Λειτουργίες ), εμφανίζει κάθε έκδοση των πακέτων που μπορούν να αναδιανεμηθούν (και μερικές από τις ενημερώσεις τους) που κυμαίνονται από την έκδοση 8 έως την έκδοση 12 (VC ++ 2005 έως VC ++ 2013). Τους έχω εγκαταστήσει εξαιτίας των εργαλείων προγραμματισμού της Microsoft που χρησιμοποιώ. Οι περισσότεροι χρήστες δεν θα έχουν όλα αυτά.

εγκατεστημένο-vcpp-redist

Μπορείτε να βρείτε τις τελευταίες λήψεις για τις υποστηριζόμενες εκδόσεις του Visual C ++ από τη Microsoft. Για τους σκοπούς μας εδώ, πρέπει να ασχοληθείτε μόνο με εκείνες που χαρακτηρίζονται ως "αναδιανεμητέα" πακέτα. Οι σύνδεσμοι που ταξινομούνται ως service pack είναι για τα εργαλεία προγραμματισμού, όχι μόνο για τις ώρες εκτέλεσης. Θα χρειαστείτε μόνο αυτά που αναφέρονται αυτήν τη στιγμή στα εγκατεστημένα προγράμματα στο σύστημά σας. Η εγκατάσταση άλλων εκδόσεων δεν θα βοηθήσει σε αυτή την περίπτωση. Οι χρήστες λειτουργικών συστημάτων 64-bit ίσως χρειαστούν και τις εκδόσεις x86 και x64 του CRT.

Το Windows Update ελέγχει εάν ο υπολογιστής σας διαθέτει τις πιο πρόσφατες ενημερώσεις για αυτά τα πακέτα, αλλά δεν ελέγχει ότι έχει εγκατασταθεί σωστά και δεν έχει σπάσει. Οι εγκαταστάτες μπορούν να ελέγξουν για να βεβαιωθούν ότι όλα τα αρχεία χρόνου εκτέλεσης είναι τα σωστά και όλες οι καταχωρήσεις μητρώου είναι σωστές.

Μόλις κατεβάσετε τους κατάλληλους εγκαταστάτες, εκτελέστε τις στο σύστημα. Οι εκδόσεις του 2005 θα σας ζητήσουν να αποδεχτείτε μια συμφωνία άδειας χρήσης πριν επανεγκαταστήσετε το πακέτο. Όλα τα άλλα έχουν ένα GUI που θα σας ρωτήσει αν θέλετε να επισκευάσετε ή να απεγκαταστήσετε την υπάρχουσα εγκατάσταση. Στις περισσότερες περιπτώσεις, μια εργασία επισκευής θα διορθώσει τυχόν προβλήματα.

Αν θέλετε να δοκιμάσετε την πιο ακραία μέθοδο, μπορείτε να απεγκαταστήσετε τις ώρες εκτέλεσης, να επανεκκινήσετε το μηχάνημα και στη συνέχεια να τις εγκαταστήσετε ξανά. Δεν προτείνω αυτή τη μέθοδο με τις ώρες λειτουργίας του 2005 και του 2008. Χωρίς αυτά, τα Windows θα δημιουργήσουν πολλά λάθη και δεν θα υπάρχει μεγάλη λειτουργικότητα για εσάς, όταν κάνετε επανεκκίνηση.

συμπέρασμα

Με λίγη παρατήρηση, μια πινελιά δοκιμής και λάθους και κάποια κατανόηση του τρόπου με τον οποίο παράγονται τα σφάλματα από το runtimes στο σύστημα, τα ζητήματα λογισμικού μπορούν να βρεθούν και να επιλυθούν χωρίς να στραφούν σε περίπλοκα εργαλεία εντοπισμού σφαλμάτων και αρχεία καταγραφής.

Έχετε τρέξει σε σφάλματα χρόνου εκτέλεσης στο σύστημά σας; Τι ήταν απαραίτητο για την επίλυσή τους; Ενημερώστε μας στα σχόλια παρακάτω.

In this article