Αν αυτό το άρθρο δεν περιγράφει το μήνυμα σφάλματος που λαμβάνετε, μπορείτε να λάβετε αναλυτικές επεξηγήσεις για το μήνυμα σφάλματος, προτεινόμενες ενέργειες και πρόσθετους πόρους υποστήριξης από τη σελίδα Events and Errors (Συμβάντα και Σφάλματα) του TechNet.
Σύνοψη
Το Regsvr32 είναι ένα βοηθητικό πρόγραμμα της γραμμής εντολών για την καταχώρηση και την κατάργηση της καταχώρησης των στοιχείων ελέγχου OLE, όπως τα DLL και τα στοιχεία ελέγχου ActiveX στο Μητρώο των Windows. Το εργαλείο Regsvr32.exe είναι εγκατεστημένο στο φάκελο %systemroot%\System32 στα Windows XP και σε νεότερες εκδόσεις των Windows.
Σημείωση Σε ένα λειτουργικό σύστημα Windows έκδοσης 64 bit, υπάρχουν δύο εκδόσεις του αρχείου Regsv32.exe:
-
Η έκδοση 64 bit είναι % systemroot%\System32\regsvr32.exe.
-
Η έκδοση 32 bit είναι %systemroot%\SysWoW64\regsvr32.exe.
Η σύνταξη της εντολής Regsvr32
Το Regsvr32.exe έχει τις ακόλουθες επιλογές γραμμής εντολών:
Regsvr32 [/u] [/n] [/i[:cmdline]] <dllname>
/u - Κατάργηση καταχώρησης διακομιστή
/i - Call DllInstall passing it an optional [cmdline]; όταν χρησιμοποιείται με το /u, καλεί το dll κατάργησης εγκατάστασης
/n - do not call DllRegisterServer; αυτή η επιλογή πρέπει να χρησιμοποιείται με το /i
/s – Χωρίς προειδοποίηση. Δεν εμφανίζονται πλαίσια μηνυμάτων
Συνήθεις λύσεις για σφάλματα του Regsvr32
Δοκιμάστε μία από τις ακόλουθες μεθόδους, όταν λαμβάνετε ένα μήνυμα σφάλματος του Regsvr32:
-
Μέθοδος 1: Εκτέλεστε ξανά την εντολή Regsvr32 από μια γραμμή εντολών με αναβαθμισμένα δικαιώματαΓια να ανοίξετε μια γραμμή εκτέλεσης εντολών με αναβαθμισμένα δικαιώματα, ακολουθήστε τα εξής βήματα:
Windows 8.1 και Windows 8Σαρώστε προς τα μέσα από τη δεξιά πλευρά της οθόνης και, στη συνέχεια, πατήστε Αναζήτηση. Εναλλακτικά, αν χρησιμοποιείτε ποντίκι, τοποθετήστε το δείκτη του ποντικιού στην κάτω δεξιά γωνία της οθόνης και, στη συνέχεια, κάντε κλικ στην επιλογή Αναζήτηση. Πληκτρολογήστε Γραμμή εντολών στο πλαίσιο Αναζήτηση, κάντε δεξιό κλικ στη Γραμμή εντολών και επιλέξτε Εκτέλεση ως διαχειριστής. Εάν σας ζητηθεί κωδικός πρόσβασης διαχειριστή ή επιβεβαίωση, πληκτρολογήστε τον κωδικό πρόσβασης ή κάντε κλικ στην επιλογή Αποδοχή.
Windows 7 και Windows VistaΓια να το κάνετε αυτό, κάντε κλικ στο κουμπί Έναρξη, πληκτρολογήστε Γραμμή εντολών ή cmd στο πλαίσιο Αναζήτηση, κάντε δεξί κλικ στη Γραμμή εντολών και, στη συνέχεια, επιλέξτε Εκτέλεση ως διαχειριστής. Εάν σας ζητηθεί κωδικός πρόσβασης διαχειριστή ή επιβεβαίωση, πληκτρολογήστε τον κωδικό πρόσβασης ή κάντε κλικ στην επιλογή Αποδοχή.
Windows XPΣυνδεθείτε με ένα λογαριασμό διαχειριστή ή ένα λογαριασμό που έχει δικαιώματα διαχειριστή και, στη συνέχεια, ανοίξτε ένα παράθυρο Γραμμής εντολών.
-
Μέθοδος 2: Χρησιμοποιήστε την έκδοση 32-bit του Regsvr32 για να καταχωρήσετε ένα 32-bit DLL σε μια έκδοση 64-bit των WindowsΕάν λάβετε ένα σφάλμα κατά την καταχώρηση ενός 32-bit DLL σε μια έκδοση 64-bit των Windows, ακολουθήστε τα εξής βήματα:
-
Ανοίξτε μια γραμμή εντολών με αναβαθμισμένα δικαιώματα.
-
Εάν το αρχείο DLL 32 bit βρίσκεται στο φάκελο %systemroot%\System32, μετακινήστε το στο φάκελο %systemroot%\SysWoW64.
-
Εκτελέστε την ακόλουθη εντολή:
%systemroot%\SysWoW64\regsvr32 <full path of the DLL>
-
Μηνύματα σφάλματος του regsvr32
Στον ακόλουθο πίνακα παρουσιάζονται τα μηνύματα σφάλματος RegSvr32 και οι πιθανές αιτίες τους:
Μήνυμα σφάλματος |
Αιτία |
---|---|
Η σημαία εντολής ""%1"" δεν είναι έγκυρη. Αναθεωρήστε τη χρήση της εντολής και προσπαθήστε ξανά. |
Διαβιβάστηκε μη έγκυρος συνδυασμός επιλογών στη γραμμή εντολών για το αρχείο regsvr32.exe. |
Η εντολή αυτή ισχύει μόνο αν ανοίξει ένα έργο στοιχείου ελέγχου OLE του Microsoft Visual Studio. |
Το αρχείο Regsvr32.exe κλήθηκε από το Visual Studio, αλλά δεν υπάρχουν λειτουργικές μονάδες που να έχουν καθοριστεί στη γραμμή εντολών. |
Για να καταχωρήσετε μια λειτουργική μονάδα, πρέπει να δώσετε ένα δυαδικό όνομα. |
Το αρχείο Regsvr32.exe κλήθηκε χωρίς να καθορίσετε λειτουργικές μονάδες στη γραμμή εντολών. |
Δεν ήταν δυνατή η εκτέλεση της εντολής OleInitialize. Ο υπολογιστής σας ίσως έχει χαμηλή μνήμη. Κλείστε όλα τα ανοιχτά προγράμματα και δοκιμάστε ξανά. |
Το αρχείο Regsvr32 πρέπει να προετοιμάσει τη βιβλιοθήκη COM, πριν να καλέσει τις απαραίτητες λειτουργίες της βιβλιοθήκης COM και να αναιρέσει την προετοιμασία της βιβλιοθήκης, κατά τον τερματισμό του. Αυτά τα μηνύματα σφάλματος προκύπτουν, αν αποτύχει μια προσπάθεια προετοιμασίας ή αναίρεσης προετοιμασίας της βιβλιοθήκης COM. |
Δεν ήταν δυνατή η φόρτωση της λειτουργικής μονάδας ""%1"".\n\n Βεβαιωθείτε ότι το δυαδικό αρχείο έχει αποθηκευτεί στην καθορισμένη διαδρομή ή πραγματοποιήστε εντοπισμό σφαλμάτων για να ελέγξετε για προβλήματα σχετικά με το δυαδικό αρχείο ή ανεξάρτητα αρχεία .DLL.\n\n%2. |
Παρουσιάστηκε σφάλμα κατά τη φόρτωση μιας λειτουργικής μονάδας που καθορίστηκε στη γραμμή εντολών. Το κείμενο σφάλματος εμφανίζεται ως μέρος του μηνύματος. |
Η λειτουργική μονάδα ""% 1"" φορτώθηκε, αλλά το σημείο εισόδου %2 δεν ήταν δυνατό να βρεθεί.\n\nΒεβαιωθείτε ότι το ""% 1"" είναι ένα έγκυρο αρχείο DLL ή OCX και, στη συνέχεια, δοκιμάστε ξανά |
Το αρχείο Regsvr32.exe δεν ήταν δυνατό να εντοπίσει το απαιτούμενο σημείο εισόδου στη λειτουργική μονάδα που καθορίζεται στη γραμμή εντολών. Αυτό μπορεί να συμβεί αν τα σημεία εισόδου δεν εξάγονται σωστά από τη λειτουργική μονάδα ή η λειτουργική μονάδα δεν είναι αρχείο .DLL ή .OCX. |
Η λειτουργική μονάδα ""%1"" φορτώθηκε, αλλά η κλήση για το %2 απέτυχε με κωδικό σφάλματος %3.\n\nΓια περισσότερες πληροφορίες σχετικά με αυτό το πρόβλημα, πραγματοποιήστε ηλεκτρονική αναζήτηση, χρησιμοποιώντας τον κωδικό σφάλματος ως όρο αναζήτησης. |
Παρουσιάστηκε σφάλμα όταν το αρχείο regsvr32.exe κάλεσε το σημείο εισόδου στη λειτουργική μονάδα που καθορίστηκε στη γραμμή εντολών. Ο κωδικός σφάλματος εμφανίζεται ως μέρος του μηνύματος. |
Η λειτουργική μονάδα ""% 1"" ίσως να μην είναι συμβατή με την έκδοση των Windows που εκτελείτε. Ελέγξτε εάν η λειτουργική μονάδα είναι συμβατή με μια έκδοση x86 (32 bit) ή x64 (64 bit) του αρχείου regsvr32.exe. |
Αυτό το σφάλμα μπορεί να παρουσιαστεί, για παράδειγμα, εάν το αρχείο regsvr32.exe εκτελείται σε έναν υπολογιστή x86 και η λειτουργική μονάδα που καθορίζεται στη γραμμή εντολών είναι λειτουργική μονάδα 64 bit. |
Στον ακόλουθο πίνακα παρουσιάζονται τα μηνύματα σφάλματος RegSvr32 και οι πιθανές αιτίες τους:
Μήνυμα σφάλματος |
Αιτία |
|
---|---|---|
Μη αναγνωρισμένη σημαία: /μη_έγκυρη_σημαία |
Πληκτρολογήσατε έναν μη έγκυρο συνδυασμό από σημαίες ή διακόπτες. |
|
Δεν έχει καθοριστεί όνομα DLL. (No DLL name specified.) |
Δεν συμπεριλάβατε ένα όνομα αρχείου .dll. |
|
Το Dll_Name φορτώθηκε, αλλά δεν βρέθηκε το σημείο εισόδου DllRegisterServer ή DllUnregisterServer. |
Το καθορισμένο όνομα Dll δεν είναι αρχείο .dll ή .ocx. Για παράδειγμα, αν πληκτρολογήσετε regsvr32 wjview.exe θα εμφανιστεί αυτό το μήνυμα σφάλματος. |
|
Το Dll_Name δεν είναι εκτελέσιμο αρχείο και δεν έχει καταχωρηθεί κανένα βοηθητικό πρόγραμμα καταχώρησης για αυτόν τον τύπο αρχείου. |
Το καθορισμένο όνομα Dll δεν είναι εκτελέσιμο αρχείο (.exe, .dll ή .ocx). Για παράδειγμα, αν πληκτρολογήσετε regsvr32 autoexec.bat θα εμφανιστεί αυτό το μήνυμα σφάλματος. |
|
Το Dll_Name δεν είναι αρχείο που εγγράφεται από μόνο του ή κάποια κατεστραμμένη έκδοση στη μνήμη. |
Για παράδειγμα, αν πληκτρολογήσετε regsvr32 icwdial.dll, θα εμφανιστεί αυτό το μήνυμα σφάλματος, επειδή το αρχείο Icwdial.dll δεν μπορεί να καταγράφεται μόνο του. Εάν υποπτεύεστε ότι στη μνήμη βρίσκεται μια κατεστραμμένη έκδοση του ονόματος Dll, δοκιμάστε να επανεκκινήσετε τον υπολογιστή σας ή να επαναλάβετε την εξαγωγή της αρχικής έκδοσης του αρχείου. |
|
Η προετοιμασία του Ole (OleInitialize) απέτυχε (ή η αναίρεση προετοιμασίας του Ole (OleUninitialize) απέτυχε) |
Το Regsvr32 πρέπει να προετοιμάσει τη βιβλιοθήκη COM, πριν να καλέσει τις απαραίτητες λειτουργίες της βιβλιοθήκης COM και να αναιρέσει την προετοιμασία της βιβλιοθήκης, όταν τερματιστεί. Αυτά τα μηνύματα σφάλματος προκύπτουν, αν αποτύχει μια προσπάθεια προετοιμασίας ή αναίρεσης προετοιμασίας της βιβλιοθήκης COM. Για παράδειγμα, το αρχείο Ole32.dll μπορεί να είναι κατεστραμμένο ή η έκδοσή του μπορεί να μην είναι η σωστή. |
|
LoadLibrary("Dll_Name") απέτυχε. Η εντολή GetlastError επιστρέφει την τιμή 0x00000485 |
Από το Winerror.h, 0x00000485 = 1157 (ERROR_DLL_NOT_FOUND). Αυτό σημαίνει ότι "Ένα από τα αρχεία της βιβλιοθήκης που απαιτούνται για την εκτέλεση αυτής της εφαρμογής δεν είναι δυνατό να βρεθεί". Για παράδειγμα, πληκτρολογώντας regsvr32 missing.dll εμφανίζεται αυτό το μήνυμα σφάλματος, αν το αρχείο Missing.dll δεν βρεθεί. |
|
Η εντολή LoadLibrary("Dll_Name") απέτυχε. Η εντολή GetLastError επιστρέφει την τιμή 0x00000002 |
Από το Winerror.h, 0x00000002 = 2 (ERROR_FILE_NOT_FOUND). Αυτό σημαίνει ότι "Δεν είναι δυνατός ο εντοπισμός του καθορισμένου αρχείου από το σύστημα". Με άλλα λόγια, δεν βρέθηκε ένα εξαρτημένο αρχείο DLL. Για παράδειγμα, πληκτρολογώντας regsvr32 icwdial.dll ενώ λείπει το αρχείο Tapi32.dll (εξαρτημένο), εμφανίζεται αυτό το μήνυμα σφάλματος. |
|
Η φόρτωση βιβλιοθήκης("dskmaint.dll") απέτυχε. Η λήψη τελευταίου σφάλματος επιστρέφει 0x000001f |
Από το Winerror.h, 0x000001f = 31 (ERROR_GEN_FAILURE). Αυτό σημαίνει ότι "Μια συσκευή που είναι συνδεδεμένη με το σύστημα δεν λειτουργεί". Αυτή η συμπεριφορά μπορεί να προκύψει, αν προσπαθήσετε να καταγράψετε ένα αρχείο Win16 .dll. Για παράδειγμα, πληκτρολογώντας regsvr32 dskmaint.dll εμφανίζεται αυτό το μήνυμα σφάλματος. |
|
Η εντολή DllRegisterServer (ή το DllUnregisterServer) στο Dll_Name απέτυχε. Ο κωδικός επιστροφής ήταν: συμβολοσειρά (DllRegisterServer (or DllUnregisterServer)in Dllname failed. Return code was: string) |
Αναζητήστε το αρχείο Winerror.h για τη συμβολοσειρά που προσδιορίζεται στο μήνυμα. |