Επιστήμες, Τέχνες & Πολιτισμός

Τι Είναι τα Αρχεία DLL, και Πώς Διορθώνω Τυχόν Σφάλματα

24 Μαΐου 2018

Κάποια στιγμή όλοι έχουμε αντιμετωπίσει πρόβλημα με κάποιο αρχείο DLL. Δεν υπάρχει πιο εκνευριστικό πράγμα από το να βλέπεις το παράθυρο σφάλματος, και να μην ξέρεις τι να κάνεις. Τι είναι όμως τα αρχεία DLL, και πώς μπορούμε να διορθώσουμε τα σφάλματα που προκαλούν; Ας δούμε λοιπόν την απάντηση σε αυτά τα ερωτήματα, μαζί με τα πιο συνηθισμένα σφάλματα με τα αρχεία αυτά.

Τι είναι τα αρχεία DLL;

Πριν αρχίσουμε να ασχολούμαστε με τα σφάλματα που προκαλούν τα αρχεία DLL, πρέπει πάνω από όλα να κατανοήσουμε τι είναι το μήνυμα σφάλματος που βλέπουμε μπροστά μας.

Ξεκινώντας, θα πούμε ότι το DLL σημαίνει Dynamic Link Library, ή Βιβλιοθήκη Δυναμικής Σύνδεσης.

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

Ένα απλό παράδειγμα είναι το “Comdlg32.dll”, το οποίο είναι υπεύθυνο για την εκτέλεση των παραθύρων διαφόρων μηνυμάτων. Κατά συνέπεια, οποιοδήποτε πρόγραμμα μπορεί να χρησιμοποιήσει το συγκεκριμένο DLL, χωρίς κανένα περιορισμό.

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

Όλα καλά μέχρι εδώ, αλλά η γενική χρήση των αρχείων dll από πολλαπλά προγράμματα είναι πιθανό να δημιουργήσει κάποια προβλήματα.

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

Κάπου εδώ διαπιστώνουμε τον λόγο για τον οποίο η επιδιόρθωση του προβλήματος ίσως αποδειχθεί μία επίπονη διαδικασία.

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

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

MSVCP140, MSVCP120, MSVCP110, και MSVCP100
Δεν είναι ένα, ούτε καν δύο, αλλά τέσσερα, και αποτελούν τα πιο συχνά αρχεία dll που θα εμφανίσουν πρόβλημα. Όλα τους είναι διαφορετικές εκδόσεις (14.0,12.0, και τα λοιπά) του ίδιου ακριβώς dll.

Το MSVCP προέρχεται από το Microsoft Visual C++, μία εξαιρετικά συνηθισμένη μορφή εφαρμογών των Windows.

Αν ανοίξουμε τη λίστα των εγκατεστημένων προγραμμάτων, το πιθανότερο είναι να δούμε αρκετές εκδόσεις της Microsoft Visual C++. Ο λόγος είναι διότι κάθε πρόγραμμα ζητά και ένα συγκεκριμένο πακέτο ώστε να λειτουργήσει, γι’ αυτό και το εγκαθιστά.

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

MSVCR100, MSVCR71
Μήπως βλέπουμε κάποια ομοιότητα αυτών των δύο dll με τα παραπάνω; Πολύ σωστά παρατηρήσαμε. Το 100 και το 71 είναι εκδόσεις, ενώ το CR αναφέρεται στη γλώσσα προγραμματισμού C. Αντίστοιχα, το CP πιο πάνω σχετίζεται με τη C++.

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

VCRUNTIME140
Το συγκεκριμένο dll σχετίζεται με τη Visual C++, και σε κάθε έκδοσή του έχει διαφορετικό όνομα. Η τελευταία έκδοσή του είναι η 14.0, και το όνομα του αρχείου είναι “VCRUNTIME140”.

Σφάλματα σχετικά με το “vcruntime140.dll” μπορεί να συναντήσουμε στο Adobe Creative Cloud, ή ακόμη και στο Kodi.

D3DX9_43
Μας επισκέπτεται συχνά, ειδικά σε παιχνίδια. Πρόκειται για ένα από τα αρχεία dll του DirectX της Microsoft.

Παράλληλα, το 43 χαρακτηρίζει συγκεκριμένη έκδοση του αρχείου, οπότε μπορεί να το συναντήσουμε με ποικίλα ονόματα.

Από τη στιγμή που χρησιμοποιείται στα παιχνίδια, ίσως δούμε συχνά σφάλματα που αφορούν αυτά τα αρχεία dll.

NTDLL
Κλείνοντας τη λίστα με τα πιο συνηθισμένα σφάλματα από αρχεία dll, και πριν δούμε τους τρόπους επίλυσής τους, θα αναφερθούμε στο πιο σοβαρό σφάλμα από όλα.

Το NTDLL είναι ένα αρχείο dll που διαχειρίζεται τις λειτουργίες του πυρήνα NT.

Το συγκεκριμένο dll περιέχει τις τεχνικές πληροφορίες των Windows, ενώ το NT προέρχεται από το New Technology, και αποτελεί τμήμα του ονόματος των Windows.

Ως εκ τούτου, τα σφάλματα που σχετίζονται με αυτό το dll προκαλούνται συχνά εξαιτίας προβλημάτων με κάποιον driver, είτε από προβλήματα διασύνδεσης των Windows με κάποιο πρόγραμμα.

Δυστυχώς, το “ntdll.dll” χειρίζεται αρκετές λειτουργίες συστήματος. Αυτό συχνά έχει ως αποτέλεσμα τα σφάλματα που προκαλούνται να εμποδίζουν ακόμη και την εκκίνηση των Windows.

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

ΔΕΝ τρέχουμε δήθεν ειδικά προγράμματα
Όταν αντιμετωπίζουμε κάποιο πρόβλημα με κάποιο αρχείο dll, μια φαινομενικά εύκολη λύση είναι να καταφύγουμε σε κάποιο ειδικό πρόγραμμα που ισχυρίζεται ότι κάνει θαύματα όσον αφορά τα αρχεία dll.

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

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

Ταυτόχρονα, η αντικατάσταση ενός και μόνο dll ίσως να μην λύσει το πρόβλημα, ενώ σε καμία περίπτωση δεν καταφεύγουμε στη λύση “πείραγμα του Windows Registry”, καθώς το πιθανότερο είναι να κάνουμε τα πράγματα χειρότερα.

Όλα αυτά αποτελούν προχωρημένες λύσεις, απαιτούν γνώσεις, και κυρίως να ξέρουμε τι κάνουμε. Γι’ αυτό ας πάρουμε τα πράγματα με τη σειρά που πρέπει.

ΔΕΝ κατεβάζουμε αρχεία dll από το ίντερνετ
Εκτός από τα προαναφερθέντα προγράμματα, υπάρχουν πολλαπλές ιστοσελίδες που υπόσχονται να μας δώσουν πρόσβαση σε κάθε πιθανό αρχείο dll.

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

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

Κατ’ αρχάς, αν πέσουμε στη λάθος σελίδα, δεν αποκλείεται να κατεβάσουμε κάποιο μολυσμένο αρχείο. Από τεχνικής άποψης, τα αρχεία dll μπορεί να περιέχουν κάποιον ιό ή άλλο τύπο malware.

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

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

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

Επίσης, κάποιες φορές η εγκατάσταση ενός προγράμματος που επηρέασε κάποιο dll μπορεί να αποτρέπει τη χρήση του μέχρι την εκτέλεση μίας επανεκκίνησης.

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

Έλεγχος για αρχεία DLL που μπορεί να λείπουν
Είναι αλήθεια ότι μπορεί κάποιο αρχείο dll να διαγραφεί, είτε καταλάθος, είτε από κάποιο πρόγραμμα.

Αν κάτι τέτοιο συμβεί, ελέγχουμε τον κάδο ανακύκλωσής μας. Αν εντοπίσουμε κάποιο αρχείο dll, κάνουμε δεξί κλικ, και επιλέγουμε “Επαναφορά”.

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

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

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

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

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

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

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

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

Ανοίγουμε μία γραμμή εντολών με δικαιώματα διαχειριστή, και τρέχουμε την εντολή “sfc /scannow”.

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

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

Έλεγχος για πιθανά malware και ιούς
Δεν χρειάζεται να πούμε ότι μπορεί ο υπεύθυνος για όλα αυτά να είναι κάποιος ιός. Γι΄αυτό πάντα είναι καλό να πραγματοποιήσουμε έναν έλεγχο για ιούς.

Παράλληλα, καλό είναι να κάνουμε έναν έλεγχο για πιθανά malware με τη βοήθεια κάποιου προγράμματος όπως το Malwarebytes.

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

Στην ουσία, θα πούμε στα Windows να ξεχάσουν την ύπαρξη του αρχείου, και έπειτα θα τους το θυμίσουμε.

Ανοίγουμε λοιπόν μία γραμμή εντολών με δικαιώματα διαχειριστή, και τρέχουμε τις εντολές “regsvr32 /u ΟΝΟΜΑ_ΑΡΧΕΙΟΥ.dll” και “regsvr32 ΟΝΟΜΑ_ΑΡΧΕΙΟΥ.dll”, μία τη φορά.

Μετά την εκτέλεση των εντολών, κάνουμε επανεκκίνηση του υπολογιστή μας.

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

Αν το πρόβλημα αυτό ξεκίνησε πρόσφατα, τότε το τελευταίο σημείο επαναφοράς είναι η καλύτερη επιλογή, εφόσον βέβαια το έχουμε ενεργοποιημένο σαν χαρακτηριστικό.

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

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

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

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

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

Σίγουρα ευχόμαστε να μην χρειαστεί να φτάσουμε ποτέ ως εδώ, αλλά πρέπει πάντα να είμαστε προετοιμασμένοι για όλα.

Έχετε αντιμετωπίσει ποτέ πρόβλημα με αρχεία DLL;
Τα σφάλματα των αρχείων dll είναι συνήθως ασαφή και ακατανόητα, πράγμα που κάνει δύσκολη τη διάγνωση και την επιδιόρθωση. Αν όμως το ψάξουμε με ψυχραιμία, το πιθανότερο είναι να βρούμε την κατάλληλη λύση.

Εσείς έχετε αντιμετωπίσει ποτέ πρόβλημα με κάποια αρχεία dll; Αν ναι, ποια ήταν αυτά, και τι κάνατε για να το λύσετε;

 

Πηγή: pcsteps.gr