如何使用 Regsvr32 工具和疑難排解 Regsvr32 錯誤訊息

Windows XP 支援已結束

Microsoft 於 2014 年 4 月 8 日結束對 Windows XP 的支援。此變更已影響您的軟體更新和安全性選項。 瞭解這對您的意義為何且如何持續受保護。

如果本文未說明您收到的錯誤訊息,您可從事件和錯誤訊息中心網站取得詳細錯誤訊息說明、建議動作與其他支援資源。
結論
Regsvr32 是可登錄和取消登錄 OLE 控制項的命令列公用程式,例如 Windows 登錄中的 DLL 和 ActiveX 控制項。 Regsvr32.exe 安裝於 Windows XP 和 Windows 更新版本的 %systemroot%\System32 資料夾。

注意 在 64 位元版本的 Windows 作業系統上,有兩種版本的 Regsv32.exe 檔案:
  • 64 位元版本的是 %systemroot%\System32\regsvr32.exe;
  • 32 位元版本的是 %systemroot%\SysWoW64\regsvr32.exe。
Regsvr32 命令語法
RegSvr32.exe 具有下列命令列選項:
Regsvr32 [/u] [/n] [/i[:cmdline]] <dllname>

/u - 取消登錄伺服器
/i - 當 DllInstall 與 /u 搭配使用呼叫 DLL 解除安裝時,呼叫 DllInstall 會將其傳送為選擇性 [cmdline]
/n - 不會呼叫 DllRegisterServer,此選項必須與 /i 搭配使用
/s – 無訊息;不顯示任何訊息方塊
常見的 Regsvr32 錯誤解決方案
當您收到 Regsvr32 錯誤時,請嘗試下列其中一種方法:
  • 方法 1:從提高權限的命令提示字元重新執行 Regsvr32 命令

    如果要開啟提高權限的命令提示字元,請依照下列步驟執行:
    Windows 8.1 和 Windows 8
    從螢幕右邊邊緣撥動進來,然後點選 [搜尋]。或者如果您使用滑鼠,請指向螢幕右下角,然後按一下 [搜尋]。在 [搜尋] 方塊中輸入命令提示字元,在 [命令提示字元] 上按右鍵,然後按一下 [以系統管理員身分執行]。如果出現要求您輸入系統管理員密碼或確認的提示,請輸入密碼或按一下 [允許]
    Windows 7 和 Windows Vista
    按一下 [開始],在 [搜尋] 方塊中輸入命令提示字元cmd,在 [命令提示字元] 上按右鍵,然後按一下 [以系統管理員身分執行]。如果出現要求您輸入系統管理員密碼或確認的提示,請輸入密碼或按一下 [允許]
    Windows XP
    以系統管理員帳戶或具有系統管理員權限的帳戶登入,然後開啟 [命令提示字元] 視窗。
  • 方法 2:使用 32 位元版本的 Regsvr32,在 64 位元版本的 Windows 上登錄 32 位元 DLL

    如果您在 64 位元版本的 Windows 上登錄 32 位元 DLL 時發生錯誤,請依照下列步驟執行:
    1. 請開啟提高權限的命令提示字元。
    2. 如果 32 位元 DLL 位於 %systemroot%\System32 資料夾,請將其移至 %systemroot%\SysWoW64 資料夾。
    3. 執行下列命令:
      %systemroot%\SysWoW64\regsvr32 <DLL 的完整路徑>
Regsvr32 錯誤訊息

Windows Vista 和 Windows 更新版本中的 Regsvr32 錯誤訊息

下列表格包含 RegSvr32 錯誤訊息和可能原因:
錯誤訊息原因
命令旗標 ""%1"" 無效。請檢閱命令的使用方式,然後再試一次。無效的選項組合已透過命令列傳送至 regsvr32.exe。
只有在開啟 Microsoft Visual Studio OLE ActiveX 控制項專案時,此命令才有效。Visual Studio 已叫用 Regsvr32.exe,但並未在命令列中指定任何模組。
如果要登錄模組,您必須提供二進位名稱。已叫用 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 版本相容。請檢查模組是否與 regsvr32.exe 的 x86 (32 位元) 或 x64 (64 位元) 版本相容。例如,如果 regsvr32.exe 在 x86 版本的電腦上執行,且在命令列中指定的模組為 64 位元的模組,就會發生這個錯誤。

Windows XP 中的 Regsvr32.exe 錯誤訊息

下列表格包含 RegSvr32 錯誤訊息和可能原因:
錯誤訊息原因
無法辨認的旗標:/invalid_flag您輸入的旗標或參數組合無效。
未指定 DLL 名稱。您未包含 .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 檔案無法自行登錄。如果您懷疑記憶體中存有損毀的 Dllname 版本,請嘗試將電腦重新開機,或重新解壓縮原始版本的檔案。
OleInitialize 失敗 (或 OleUninitialize 失敗)Regsvr32 必須先初始化 COM 程式庫,才能呼叫所需 COM 程式庫函式,並在關閉時解除初始化程式庫。如果嘗試初始化或解除初始化 COM 程式庫失敗,就會出現這些錯誤訊息。例如,Ole32.dll 檔案可能遭到損毀,或是版本錯誤。
LoadLibrary("Dll_Name") 失敗。GetlastError 傳回 0x00000485出自 Winerror.h, 0x00000485 = 1157 (ERROR_DLL_NOT_FOUND)。這表示「找不到執行這個應用程式所需的某個程式庫檔案」。例如,如果找不到 Missing.dll 檔案,輸入 regsvr32 missing.dll 就會傳回這個錯誤訊息。
LoadLibrary("Dll_Name") 失敗。GetLastError 傳回 0x00000002出自 Winerror.h, 0x00000002 = 2 (ERROR_FILE_NOT_FOUND)。這表示「系統找不到指定的檔案」。也就是說,找不到相依的 DLL。例如,找不到 Tapi32.dll (相依性) 時,輸入 regsvr32 icwdial.dll 就會傳回這個錯誤訊息。
LoadLibrary("dskmaint.dll") 失敗。GetLastError 傳回 0x000001f出自 Winerror.h, 0x000001f = 31 (ERROR_GEN_FAILURE)。這表示「附加到系統的某個裝置失去作用」。如果您嘗試登錄 Win16 .dll 檔案,可能就會發生這個問題。例如,輸入 regsvr32 dskmaint.dll 就會傳回這個錯誤訊息。
DllRegisterServer (or DllUnregisterServer)in Dll_Name 失敗。傳回碼是:string在 Winerror.h 檔案中搜尋訊息中指定的 string
regsrv32
內容

文章識別碼:249873 - 最後檢閱時間:03/18/2014 14:36:00 - 修訂: 7.0

Windows Vista 商用進階版, Windows Vista 商用入門版, Windows Vista 家用入門版, Windows Vista 家用進階版, Windows Vista 旗艦版, Microsoft Windows XP Home Edition (家用版), Microsoft Windows XP Media Center Edition 2005 Update Rollup 2, Microsoft Windows XP Professional, Microsoft Windows XP Tablet PC Edition, Windows 7 Enterprise, Windows 7 Home Basic, Windows 7 Home Premium, Windows 7 Professional, Windows 7 Ultimate, Windows 8, Windows 8 Enterprise, Windows 8 Pro, Windows 8.1, Windows 8.1 Enterprise, Windows 8.1 Pro

  • kbresolve kbenv kberrmsg kbinfo kbkern32dll KB249873
意見反應