Jeśli w tym artykule nie opisano odpowiedniego komunikatu o błędzie, szczegółowe wyjaśnienie komunikatu o błędzie, zalecane czynności i dodatkowe zasoby pomocy technicznej można znaleźć na stronie Zdarzenia i błędy w witrynie TechNet.
Podsumowanie
Regsvr32 to narzędzie wiersza polecenia służące do rejestrowania i wyrejestrowywania kontrolek OLE, takich jak kontrolki bibliotek DLL i kontrolki ActiveX, w rejestrze systemu Windows Registry. Narzędzie Regsvr32.exe jest instalowane w folderze %systemroot%\System32 w systemie Windows XP i w nowszych wersjach systemu Windows.
Uwaga W 64-bitowej wersji systemu operacyjnego Windows istnieją dwie wersje pliku Regsv32.exe:
-
Wersja 64-bitowa %systemroot%\System32\regsvr32.exe.
-
Wersja 32-bitowa %systemroot%\SysWoW64\regsvr32.exe.
Składnia polecenia Regsvr32
Narzędzie RegSvr32.exe oferuje następujące opcje wiersza polecenia:
Regsvr32 [/u] [/n] [/i[:wiersz_polecenia]] <dllname>
/u — Wyrejestruj serwer.
/i — Wywołaj funkcję DllInstall, przekazując jej opcjonalny [wiersz_polecenia]; użycie tej opcji razem z opcją /u wywołuje funkcję dll uninstall.
/n — Nie wywołuj serwera DllRegisterServer; tej opcji należy używać z opcją /i.
/s – Tryb cichy. Nie wyświetlaj okien komunikatów.
Typowe rozwiązania błędów narzędzia Regsvr32
W przypadku błędu narzędzia Regsvr32 należy wypróbować jedną z następujących metod:
-
Metoda 1. Ponowne uruchomienie polecenia Regsvr32 w wierszu polecenia z podwyższonym poziomem uprawnieńAby otworzyć wiersz polecenia z podwyższonym poziomem uprawnień, wykonaj następujące czynności:
Windows 8.1 i Windows 8Szybko przesuń palcem od prawej krawędzi do środka ekranu, a następnie naciśnij pozycję Wyszukiwanie. Jeśli używasz myszy, wskaż prawy dolny róg ekranu i kliknij panel Wyszukiwanie. Wpisz tekst Wiersz polecenia w polu Wyszukaj, kliknij prawym przyciskiem myszy pozycję Wiersz polecenia, a następnie kliknij polecenie Uruchom jako administrator. Jeśli zostanie wyświetlony monit o potwierdzenie lub podanie hasła administratora, wpisz hasło lub kliknij przycisk Zezwalaj.
Windows 7 i Windows VistaW tym celu kliknij przycisk Start, wpisz tekst Wiersz polecenia lub cmd w polu Wyszukaj, kliknij prawym przyciskiem myszy pozycję Wiersz polecenia, a następnie kliknij polecenie Uruchom jako administrator. Jeśli zostanie wyświetlony monit o potwierdzenie lub podanie hasła administratora, wpisz hasło lub kliknij przycisk Zezwalaj.
Windows XPZaloguj się przy użyciu konta administratora lub konta z uprawnieniami administratora, a następnie otwórz okno Panel sterowania.
-
Metoda 2. Zarejestrowanie 32-bitowej biblioteki DLL w 64-bitowej wersji systemu Windows za pomocą 32-bitowej wersji narzędzia Regsvr32W razie otrzymania błędu podczas rejestrowania 32-bitowej biblioteki DLL w 64-bitowej wersji systemu Windows, wykonaj następujące czynności:
-
Otwórz wiersz polecenia z podwyższonym poziomem uprawnień.
-
Jeśli 32-bitowa biblioteka DLL znajduje się w folderze %systemroot%\System32, przenieś ją do folderu %systemroot%\SysWoW64.
-
Uruchom następujące polecenie:
%systemroot%\SysWoW64\regsvr32 <full path of the DLL>
-
Komunikaty o błędach narzędzia Regsvr32
Poniższa tabela zawiera komunikaty o błędach narzędzia RegSvr32 oraz informacje o ich możliwych przyczynach:
Komunikat o błędzie |
Przyczyna |
---|---|
Flaga polecenia %1 jest nieprawidłowa. Przejrzyj opis sposobu użycia polecenia i spróbuj ponownie. |
Do narzędzia regsvr32.exe została przekazana nieprawidłowa kombinacja opcji za pomocą wiersza polecenia. |
To polecenie jest prawidłowe tylko wtedy, gdy jest otwarty projekt formantu ActiveX OLE Microsoft Visual Studio. |
Narzędzie Regsvr32.exe zostało wywołane przez program Visual Studio, jednak w wierszu polecenia nie określono żadnych modułów. |
Aby zarejestrować moduł, należy podać nazwę binarną. |
Narzędzie Regsvr32.exe zostało wywołane bez określenia modułu w wierszu polecenia. |
Nie można uruchomić polecenia OleInitialize. Być może w komputerze jest za mało pamięci. Zamknij wszystkie otwarte programy, a następnie spróbuj ponownie. |
Narzędzie Regsvr32 musi zainicjować bibliotekę COM, aby móc wywoływać z niej niezbędne funkcje, a następnie odinicjować bibliotekę w chwili jej zamykania. Te komunikaty o błędzie występują, jeśli próba inicjacji lub usunięcia inicjacji biblioteki COM nie powiedzie się. |
Nie można załadować modułu „%1”.\n\n Upewnij się, że plik binarny jest przechowywany w określonej ścieżce, lub zdebuguj go, aby sprawdzić, czy występują problemy z plikiem binarnym lub zależnymi plikami DLL.\n\n%2. |
Wystąpił błąd podczas ładowania modułu określonego w wierszu polecenia. Tekst błędu jest wyświetlany jako część komunikatu. |
Moduł „%1” został załadowany, ale nie odnaleziono punktu wejścia %2.\n\nUpewnij się, że plik „%1” jest prawidłowym plikiem DLL lub OCX, a następnie spróbuj ponownie. |
Narzędzie Regsvr32.exe nie mogło odnaleźć wymaganego punktu wejścia w module określonym w wierszu polecenia. Problem może wystąpić, jeśli punkty wejścia nie zostały poprawnie wyeksportowane z modułu lub jeśli moduł nie jest plikiem DLL ani OCX. |
Moduł „%1” został załadowany, ale wywołanie funkcji %2 nie powiodło się i został zwrócony kod błędu %3.\n\nAby uzyskać więcej informacji dotyczących tego problemu, przeprowadź wyszukiwanie w trybie online, używając kodu błędu jako wyszukiwanego terminu. |
Wystąpił błąd podczas wywoływania przez narzędzie Regsvr32.exe punktu wejścia w module określonym w wierszu polecenia. Kod błędu jest wyświetlany jako część komunikatu. |
Moduł „%1” może nie być zgodny z używaną wersją systemu Windows. Sprawdź, czy moduł jest zgodny z 32-bitową (x86) lub 64-bitową (x64) wersją narzędzia regsvr32.exe. |
Ten błąd może wystąpić, jeśli narzędzie regsvr32.exe uruchomiono na komputerze z procesorem x86, a w wierszu polecenia określono moduł 64-bitowy. |
Poniższa tabela zawiera komunikaty o błędach narzędzia RegSvr32 oraz informacje o ich możliwych przyczynach:
Komunikat o błędzie |
Przyczyna |
|
---|---|---|
Nierozpoznana flaga: /nieprawidłowa_flaga |
Wpisano nieprawidłowe połączenie flag lub przełączników. |
|
Nie określono nazwy biblioteki DLL. |
Nie dołączono nazwy pliku dll. |
|
Plik nazwa_pliku_dll został załadowany, ale nie odnaleziono punktu wejścia DllRegisterServer lub DllUnregisterServer. |
Plik nazwa_pliku_dll nie jest plikiem dll ani ocx. Ten komunikat o błędzie powoduje wpisanie na przykład polecenia regsvr32 wjview.exe. |
|
Plik nazwa_pliku_dll nie jest plikiem wykonywalnym i dla tego typu pliku nie jest zarejestrowany żaden pomocnik. |
Plik nazwa_pliku_dll nie jest plikiem wykonywalnym (exe, dll lub ocx). Ten komunikat o błędzie powoduje na przykład wpisanie polecenia regsvr32 autoexec.bat. |
|
Plik nazwa_pliku_dll nie jest plikiem samoczynnie rejestrującym się lub w pamięci znajduje się uszkodzona wersja. |
Na przykład po wpisaniu polecenia regsvr32 icwdial.dll jest zwracany ten komunikat o błędzie, ponieważ Icwdial.dll nie jest plikiem samoczynnie rejestrującym się. W razie podejrzeń, że w pamięci znajduje się uszkodzona wersja pliku nazwa_pliku_dll, należy spróbować ponownie uruchomić komputer lub ponownie wyodrębnić oryginalną wersję pliku. |
|
Funkcja OleInitialize nie powiodła się (lub „Funkcja OleUninitialize nie powiodła się”) |
Narzędzie Regsvr32 musi zainicjować bibliotekę COM, aby móc wywoływać z niej niezbędne funkcje, a następnie usunąć inicjację biblioteki w chwili zamykania. Te komunikaty o błędzie występują, jeśli próba inicjacji lub usunięcia inicjacji biblioteki COM nie powiedzie się. Może to oznaczać na przykład, że plik Ole32.dll jest uszkodzony lub jego wersja jest niewłaściwa. |
|
Funkcja LoadLibrary("nazwa_pliku_dll") nie powiodła się. Funkcja GetlastError zwraca kod 0x00000485 |
Plik Winerror.h — kod 0x00000485 = 1157 (ERROR_DLL_NOT_FOUND). Oznacza to „Nie można odnaleźć jednego z plików bibliotek potrzebnych do uruchomienia tej aplikacji”. Na przykład wpisanie polecenia regsvr32 missing.dll powoduje zwrócenie tego komunikatu o błędzie, jeśli nie zostanie znaleziony plik Missing.dll. |
|
Funkcja LoadLibrary("nazwa_pliku_dll") nie powiodła się. Funkcja GetLastError zwraca kod 0x00000002 |
Plik Winerror.h — kod 0x00000002 = 2 (ERROR_FILE_NOT_FOUND). Oznacza to „System nie może odnaleźć określonego pliku”. Inaczej mówiąc, nie znaleziono zależnego pliku DLL. Na przykład wpisanie polecenia regsvr32 icwdial.dll przy brakującym pliku Tapi32.dll (zależność) powoduje zwrócenie tego komunikatu o błędzie. |
|
Funkcja LoadLibrary("dskmaint.dll") nie powiodła się. Funkcja GetLastError zwraca kod 0x000001f |
Plik Winerror.h — kod 0x000001f = 31 (ERROR_GEN_FAILURE). Oznacza to „Urządzenie podłączone do systemu nie działa”. Zachowanie to może być spowodowane próbą zarejestrowania pliku .dll Win16. Na przykład wpisanie polecenia regsvr32 dskmaint.dll powoduje zwrócenie tego komunikatu o błędzie. |
|
Funkcja DllRegisterServer (lub DllUnregisterServer) w pliku nazwa_pliku_dll nie powiodła się. Kod zwrotny to: ciąg |
W pliku Winerror.h należy odnaleźć ciąg określony w komunikacie. |