Τι είναι τα αρχεία DLL και γιατί λείπει κάποιος από τον υπολογιστή μου;
Όταν λάβετε ένα λάθος λέγοντας ότι τα Windows δεν μπόρεσαν να βρουν ένα συγκεκριμένο αρχείο DLL, μπορεί να είναι απαίσιο δελεαστικό να κατεβάσετε το αρχείο από μία από τις πολλές τοποθεσίες DLL εκεί έξω. Εδώ γιατί δεν πρέπει.
Τι είναι τα DLL?
Πριν ξεκινήσουμε γιατί δεν πρέπει να κάνετε λήψη αρχείων Dynamic Link Library (DLL) από το Διαδίκτυο, ας ρίξουμε μια ματιά στα αρχεία DLL. Ένα αρχείο DLL είναι μια βιβλιοθήκη που περιέχει ένα σύνολο κωδικών και δεδομένων για τη διεξαγωγή συγκεκριμένης δραστηριότητας στα Windows. Οι εφαρμογές μπορούν στη συνέχεια να καλέσουν αυτά τα αρχεία DLL όταν χρειάζονται τη δραστηριότητα αυτή. Τα αρχεία DLL είναι πολύ παρόμοια με τα εκτελέσιμα αρχεία (EXE), εκτός από το ότι τα αρχεία DLL δεν μπορούν να εκτελεστούν απευθείας στα Windows. Με άλλα λόγια, δεν μπορείτε να κάνετε διπλό κλικ σε ένα αρχείο DLL για να το εκτελέσετε με τον ίδιο τρόπο που θα κάνατε ένα αρχείο EXE. Αντ 'αυτού, τα αρχεία DLL σχεδιάζονται για να καλούνται από άλλες εφαρμογές. Στην πραγματικότητα, έχουν σχεδιαστεί για να καλούνται ταυτόχρονα από πολλαπλές εφαρμογές. Το τμήμα "link" του ονόματος DLL προτείνει επίσης μια άλλη σημαντική πτυχή. Πολλαπλά DLLs μπορούν να συνδεθούν μεταξύ τους έτσι ώστε όταν καλείται ένα DLL, καλούνται επίσης και άλλα DLL ταυτόχρονα.
Τα ίδια τα Windows χρησιμοποιούν εκτεταμένα DLL, ως περιήγηση μέσω του C: \ Windows \ System32
φάκελο μπορεί να σας πει. Ως παράδειγμα αυτού που μιλάμε, ας εξετάσουμε το αρχείο συστήματος "comdlg32.dll" του Windows. Αυτό το αρχείο, γνωστό και ως κοινής βιβλιοθήκης διαλόγου, περιέχει κώδικα και δεδομένα για την κατασκευή πολλών από τα κοινά πλαίσια διαλόγου που βλέπετε Παράθυρα-παράθυρα διαλόγου για πράγματα όπως άνοιγμα αρχείων, εκτύπωση εγγράφων, και ούτω καθεξής. Οι οδηγίες σε αυτό το DLL χειρίζονται τα πάντα από τη λήψη και την ερμηνεία μηνυμάτων που προορίζονται για το παράθυρο διαλόγου για να καθορίσετε τον τρόπο εμφάνισης του πλαισίου διαλόγου στην οθόνη σας. Προφανώς, πολλές εφαρμογές μπορούν να κάνουν κλήση σε αυτό το DLL ταυτόχρονα, διαφορετικά δεν θα μπορείτε να ανοίξετε ένα παράθυρο διαλόγου (όπως το παρακάτω) σε περισσότερες από μία εφαρμογές τη φορά.
Τα αρχεία DLL επιτρέπουν την τροποποίηση και επαναχρησιμοποίηση του κώδικα, πράγμα που σημαίνει ότι οι προγραμματιστές δεν χρειάζεται να ξοδεύουν χρόνο για να γράψουν τον κώδικα από το μηδέν για να εκτελέσουν καθημερινές ή συνηθισμένες λειτουργίες. Και αν και οι προγραμματιστές θα δημιουργήσουν δικά τους DLL για να εγκαταστήσουν με τις εφαρμογές τους, η συντριπτική πλειοψηφία των DLL που ονομάζονται εφαρμογές είναι στην πραγματικότητα συνδυασμένη με τα Windows ή με επιπλέον πακέτα, όπως το Microsoft .NET Framework ή το Microsoft C ++ Redistributables. Το άλλο μεγάλο πλεονέκτημα του module modularizing με αυτόν τον τρόπο είναι ότι οι ενημερώσεις είναι ευκολότερο να εφαρμοστούν σε κάθε DLL παρά σε ολόκληρη την εφαρμογή - ειδικά όταν αυτά τα DLLs δεν προέρχονται από τον προγραμματιστή της εφαρμογής. Για παράδειγμα, όταν η Microsoft ενημερώνει ορισμένα DLL στο .NET Framework, όλες οι εφαρμογές που χρησιμοποιούν αυτά τα DLLs μπορούν αμέσως να επωφεληθούν από την ενημερωμένη ασφάλεια ή λειτουργικότητα.
Τα ληφθέντα DLL ενδέχεται να είναι ξεπερασμένα
Έτσι, με λίγη κατανόηση των αρχείων DLL κάτω από τις ζώνες μας, γιατί να μην τα κατεβάζετε από το Internet όταν κάποιος λείπει από το σύστημά σας?
Το πιο συνηθισμένο πρόβλημα που θα αντιμετωπίσετε με τα ληφθέντα DLLs είναι ότι είναι ξεπερασμένα. Πολλές από τις τοποθεσίες DLLs εκεί έξω παίρνουν τα DLLs τους απλά φορτώνοντάς τα από τους δικούς τους ή τους υπολογιστές των χρηστών τους. Μπορείτε πιθανώς να δείτε το πρόβλημα ήδη. Οι περισσότεροι από αυτούς τους ιστότοπους θέλουν απλώς την επισκεψιμότητά σας και, μόλις μεταφορτωθεί ένα αρχείο DLL, έχουν ελάχιστα κίνητρα να διασφαλίσουν ότι ο φάκελος ενημερώνεται. Προσθέστε σε αυτό ότι οι πωλητές δεν εκδίδουν συνήθως ενημερωμένα DLLs στο κοινό ως μεμονωμένα αρχεία και μπορείτε να δείτε ότι ακόμη και οι ιστότοποι που προσπαθήστε να διατηρούν τα αρχεία ενημερωμένα δεν είναι πιθανό να είναι πολύ επιτυχημένα.
Υπάρχει επίσης το περαιτέρω πρόβλημα ότι τα αρχεία DLL συνήθως ενσωματώνονται σε πακέτα. Μια ενημέρωση σε ένα DLL σε ένα πακέτο συνοδεύεται συχνά από ενημερώσεις σε άλλα, σχετικά DLLs στο ίδιο πακέτο, πράγμα που σημαίνει ότι ακόμη και στην απίθανη περίπτωση που θα λάβετε ένα ενημερωμένο αρχείο DLL, δεν θα λάβετε σχετικά αρχεία που έχουν επίσης ενημερώθηκε.
Τα ληφθέντα DLLs μπορούν να μολυνθούν
Αν και λιγότερο συνηθισμένο, ένα δυνητικά πολύ χειρότερο πρόβλημα είναι ότι τα αρχεία DLL που κάνετε λήψη από άλλες πηγές εκτός από τον προμηθευτή μερικές φορές μπορούν να φορτωθούν με ιούς ή άλλο κακόβουλο λογισμικό που μπορεί να μολύνει τον υπολογιστή σας. Αυτό ισχύει ιδιαίτερα σε ιστότοπους που δεν είναι πολύ προσεκτικοί σχετικά με το πού παίρνουν τα αρχεία τους. Και δεν είναι όπως αυτές οι περιοχές πρόκειται να βγούμε από το δρόμο τους για να σας πω για τις πηγές κινδύνου τους. Το πραγματικά τρομακτικό μέρος είναι ότι αν κατεβάσετε ένα μολυσμένο αρχείο DLL, κινδυνεύετε-από την ίδια τη φύση των αρχείων DLL-δίνοντας αυτό το αρχείο βαθύτερη πρόσβαση από ένα κανονικό μολυσμένο αρχείο μπορεί να πάρει.
Τα καλά νέα εδώ είναι ότι μια καλή, σε πραγματικό χρόνο, εφαρμογή εντοπισμού ιών μπορεί συνήθως να ανιχνεύσει αυτά τα μολυσμένα αρχεία DLL προτού αποθηκευτούν στην πραγματικότητα στο σύστημά σας και να τους αποτρέψουν από τυχόν ζημιές. Ακόμα, πρέπει να θυμάστε ότι ακόμη και ένα μεγάλο πρόγραμμα προστασίας από ιούς ενδέχεται να μην σας προσφέρει τέλεια προστασία. Εάν κάνετε μια συνήθεια για τη λήψη επικίνδυνων αρχείων, είναι πιθανό να σας καλύψουν κάποια στιγμή. Είναι καλύτερα να αποφύγετε ακριβώς αυτές τις τοποθεσίες DLL.
Πιθανόν δεν θα λύσουν το πρόβλημά σας ούτως ή άλλως
Ενώ είναι πιθανό ότι μόνο ένα αρχείο DLL στον υπολογιστή σας έχει καταστραφεί ή διαγραφεί, είναι πιθανότερο ότι άλλα DLL ή σχετικά αρχεία εφαρμογών είναι επίσης διεφθαρμένα ή λείπουν. Ο λόγος που εμφανίζετε ένα σφάλμα σχετικά με ένα συγκεκριμένο αρχείο είναι ότι είναι το πρώτο σφάλμα μιας εφαρμογής που συναντήθηκε πριν από τη συντριβή και απλά δεν ενημερώνεστε για τα υπόλοιπα. Αυτό μπορεί να είναι αληθές ανεξάρτητα από την αιτία του προβλήματος.
Γιατί ενδέχεται τα DLL να λείπουν ή να αλλοιώνονται; Μπορεί να είναι ότι μια άλλη εφαρμογή ή ενημερωμένη έκδοση που έχει καταστραφεί προσπάθησε να αντικαταστήσει το αρχείο και απέτυχε ή την αντικατέστησε με ένα παλιό αντίγραφο. Μπορεί να είναι ένα σφάλμα κατά την εγκατάσταση της κύριας εφαρμογής σας ή σε ένα πακέτο όπως το .NET. Μπορεί ακόμη και να έχετε κάποιο άλλο πρόβλημα όπως οι κακοί τομείς στον σκληρό σας δίσκο που εμποδίζουν τη σωστή φόρτωση του αρχείου.
Πώς μπορώ να διορθώσω το σφάλμα DLL μου?
Ο μόνος τρόπος για να βεβαιωθείτε ότι έχετε ένα σταθερό, ενημερωμένο και καθαρό DLL είναι να το πάρετε από την πηγή από την οποία προέρχεται. Συνήθως, αυτή η πηγή θα είναι:
- Τα μέσα εγκατάστασης των Windows. Είναι απίθανο να μπορείτε να αντιγράψετε απλά ένα αρχείο DLL από το μέσο εγκατάστασης, αλλά έχετε μια γρήγορη επιλογή να προσπαθήσετε πριν κάνετε κάτι τόσο δραστικό όσο το reintalling των Windows. Μπορείτε να χρησιμοποιήσετε το εργαλείο προστασίας των πόρων των Windows (συχνά αναφέρεται ως ελεγκτής αρχείων συστήματος ή SFC), το οποίο θα σαρώσει και θα διορθώσει κατεστραμμένα ή λείπει αρχεία συστήματος στα Windows. Πρέπει να έχετε τα μέσα εγκατάστασής σας εύχρηστα κατά την εκτέλεση του εργαλείου, μόνο σε περίπτωση που χρειάζεται να αντιγράψετε ένα αρχείο από εκεί. (Εάν δεν διαθέτετε δίσκο εγκατάστασης, μπορείτε να το κατεβάσετε εδώ).
- Τα πακέτα της Microsoft .NET Framework. Πολλές εκδόσεις του .NET εγκαθίστανται αυτόματα μαζί με τα Windows και πολλές εφαρμογές εγκαθιστούν επίσης αρχεία από αυτά τα πακέτα. Μπορείτε να διαβάσετε το άρθρο μας σχετικά με το .NET Framework, το οποίο επίσης έχει κάποιες συμβουλές για την εύρεση και επισκευή των σχετικών προβλημάτων.
- Διάφορα πακέτα Redistributable της Microsoft Visual C ++. Ανάλογα με τις εφαρμογές που χρησιμοποιείτε, μπορείτε να έχετε πολλές εκδόσεις του C ++ Redistributable εγκατεστημένες στον υπολογιστή σας. Μπορεί μερικές φορές να είναι δύσκολο να περιορίσετε ποιος είναι ο ένοχος, αλλά ένα καλό μέρος για να ξεκινήσετε είναι το άρθρο μας σχετικά με το C ++ Redistributables, το οποίο περιλαμβάνει επίσης διάφορα βήματα αντιμετώπισης προβλημάτων και συνδέσμους όπου μπορείτε να κάνετε λήψη των πλέον ενημερωμένων εκδόσεων κατευθείαν από τη Microsoft.
- Η εφαρμογή που συνοδεύει το αρχείο DLL. Εάν το αρχείο DLL εγκατασταθεί μαζί με μια εφαρμογή και όχι ως μέρος ενός ξεχωριστού πακέτου, το καλύτερο στοίχημά σας είναι απλά να επανεγκαταστήσετε την εφαρμογή. Ορισμένες εφαρμογές σάς επιτρέπουν να εκτελέσετε μια επιδιόρθωση αντί για μια πλήρη επανεγκατάσταση. Κάθε επιλογή θα πρέπει να λειτουργήσει, αφού μια επισκευή συνήθως αναζητά τα αρχεία που λείπουν στους φακέλους εγκατάστασης.
Εάν όλα αυτά αποτυγχάνουν, ίσως μπορείτε να επικοινωνήσετε με τον προμηθευτή της εφαρμογής και να ζητήσετε αντίγραφο ενός μεμονωμένου αρχείου DLL. Ορισμένες εταιρείες είναι ανοικτές σε αυτό το αίτημα. Κάποιοι δεν είναι. Αν τρέχετε σε μια εταιρεία που δεν θα παρέχει μεμονωμένα αρχεία, μπορεί τουλάχιστον να είναι σε θέση να προσφέρει άλλες προτάσεις για την επίλυση του προβλήματός σας.