當(dāng)前位置:首頁>>軟件教程>>操作系統(tǒng)>>新聞內(nèi)容
Regsvr32 用法和錯誤消息的說明
作者:佚名 發(fā)布時間:2004-4-13 9:57:40 文章來源:西部E網(wǎng)

對于那些可以自行注冊的對象鏈接和嵌入 (OLE) 控件,例如動態(tài)鏈接庫 (DLL) 文件或 ActiveX 控件 (OCX) 文件,您可以使用 Regsvr32 工具 (Regsvr32.exe) 來將它們注冊和取消注冊。

Regsvr32.exe 的用法

RegSvr32.exe 具有以下命令行選項: Regsvr32 [/u] [/n] [/i[:cmdline]] dllname

   /u - Unregister server<BR/>
   /i - Call DllInstall passing it an optional [cmdline];
        when used with /u calls dll uninstall
   /n - do not call DllRegisterServer; this option must
        be used with /i

當(dāng)您使用 Regsvr32.exe 時,它會嘗試加載該組件并調(diào)用它的 DLLSelfRegister 函數(shù)。如果此嘗試成功,Regsvr32.exe 會顯示一個指示成功的對話框。如果此嘗試失敗,Regsvr32.exe 會返回一條錯誤消息,其中可能會包括一個 Win32 錯誤代碼。要查看 Win32 錯誤代碼的列表,請參見下面的 Microsoft Web 站點: 
http://msdn.microsoft.com/library/en-us/netdir/adsi/win32_error_codes.asp 

例如,要手動注冊 Sample.ocx ActiveX 控件,請在 MS-DOS 提示符處鍵入以下命令: 
c:\regsvr32.exe sample.ocx

Regsvr32.exe 錯誤消息

以下列表介紹了 RegSvr32 錯誤消息和可能的原因。 

Unrecognized flag:/invalid_flag

鍵入的標(biāo)志或開關(guān)組合無效(請參閱本文中的“Regsvr32.exe 的用法”一節(jié))。 

No DLL name specified.

未包括 .dll 文件名(請參閱本文中的“Regsvr32.exe 的用法”一節(jié))。 

Dllname was loaded, but the DllRegisterServer or DllUnregisterServer entry point was not found.

Dllname 不是 .dll 或 .ocx 文件。例如,鍵入 regsvr32 wjview.exe 就會生成該錯誤消息。 

Dllname is not an executable file and no registration helper is registered for this file type.

Dllname 不是可執(zhí)行文件(.exe、.dll 或 .ocx)。例如,鍵入 regsvr32 autoexec.bat 就會生成該錯誤消息。

Dllname was loaded, but the DllRegisterServer or DllUnregisterServer entry point was not found.

Dllname 可能未導(dǎo)出,或者內(nèi)存中可能有損壞的 Dllname 版本。請考慮使用 Pview 來檢測該文件并刪除它。 

Dllname is not self-registerable or a corrupted version is in memory.

例如,鍵入 regsvr32 icwdial.dll 后就會返回該錯誤消息,因為 Icwdial.dll 文件不能自行注冊。如果您懷疑內(nèi)存中有損壞的 Dllname 版本,請嘗試重新啟動計算機(jī),或重新提取該文件的原始版本。如果您運行的是 Windows NT,可能需要使用 Microsoft Windows NT Server 4.0 資源工具包 中的 Kill 或 Pview 工具。有關(guān)其他信息,請單擊以查看以下 Microsoft 知識庫文章: 
197155 如何終止孤立進(jìn)程 

OleInitialize failed (or OleUninitialize failed).

Regsvr32 必須先初始化 COM 庫,然后才能調(diào)用所需的 COM 庫函數(shù)并在關(guān)閉時撤消對該庫的初始化。如果對 COM 庫進(jìn)行初始化或撤消初始化的嘗試失敗,就會出現(xiàn)這些錯誤消息。例如,Ole32.dll 文件可能已經(jīng)損壞,或者其版本有誤。 

LoadLibrary("Dllname") failed.GetlastError returns 0x00000485

在 Winerror.h 中,0x00000485 = 1157 (ERROR_DLL_NOT_FOUND),表示“找不到運行該應(yīng)用程序所需的某個庫文件”。例如,鍵入 regsvr32 missing.dll 后,如果找不到 Missing.dll 文件,就會返回該錯誤消息。 

LoadLibrary("Dllname") failed.GetLastError returns 0x00000002

在 Winerror.h 中,0x00000002 = 2 (ERROR_FILE_NOT_FOUND),表示“系統(tǒng)找不到指定的文件”。換言之,系統(tǒng)找不到相關(guān)的 DLL。例如,如果鍵入 regsvr32 icwdial.dll,而此時缺少 Tapi32.dll(依賴項),就會返回該錯誤消息。 

LoadLibrary("dskmaint.dll") failed.GetLastError returns 0x000001f

在 Winerror.h 中,0x000001f = 31 (ERROR_GEN_FAILURE),表示“附加到系統(tǒng)上的設(shè)備不能正常工作”。如果您嘗試注冊 Win16 .dll 文件,就會發(fā)生此現(xiàn)象。例如,鍵入 regsvr32 dskmaint.dll 會返回該錯誤消息。 

DllRegisterServer (or DllUnregisterServer)in Dllname failed.返回代碼是:字符串

在 Winerror.h 中搜索字符串。 
Regsvr32.exe 和依賴項
RegSvr32.exe 依賴于 Kernel32.dll、User32.dll 和 Ole32.dll 文件(在 Windows NT 中,還依賴于 Msvcrt.dll 和 Advapi32.dll 文件)。Regsvr32.exe 會加載您嘗試注冊或撤消注冊的文件及其所有依賴項。如果缺少必需的文件或者它們已損壞,該進(jìn)程可能會失敗。 

您可以使用 Depends.exe 來確定您嘗試注冊或撤消注冊的文件的依賴項。在 Microsoft Windows 98 資源工具包 和 Microsoft Windows NT 4.0 資源工具包 支持工具中都提供了 Depends.exe。
247024 Tools Included with the Microsoft Windows 98 Resource Kit 


最新更新
·教你刪除Windows 7自動創(chuàng)建的
·檢測你的計算機(jī)是否能運行Wi
·如何安裝Windows 7 RC的中文
·解決Vista關(guān)閉UAC后邊欄無法
·Windows 7 RC新功能XP Mode詳
·Windows7操作系統(tǒng)硬件配置要
·wubi安裝Ubuntu 9.04失敗的原
·如何修改Windows7的軟件默認(rèn)
·在Windows7在硬盤升級Window
·vista在硬盤下全新安裝Windo
相關(guān)信息
·Win XP中的Regsvr32命令另類用法
·學(xué)習(xí)強(qiáng)大的Regsvr32命令
放生
愚愛
夠愛
觸電
白狐
心跳
知足
犯錯
降臨
分愛
葬愛
光榮
畫心
火花
稻香
愛得起
這種愛
大丈夫
花蝴蝶
二缺一
小酒窩
下雨天
右手邊
安靜了
棉花糖
明天過后
邊做邊愛
擦肩而過
沒有如果
懷念過去
等一分鐘
越來越愛
寂寞暴走
你的承諾
Nobody
我們都一樣
永遠(yuǎn)在身邊
天使的翅膀
原諒我一次
i miss you
原諒我一次
吻的太逼真
姑娘我愛你
做你的愛人
一定要愛你
飛向別人的床
愛上別人的人
感動天感動地
心在跳情在燒
不潮不用花錢
如何能把你忘記
即使知道要見面
愛上你是一個錯
最后一次的溫柔
愛上你是我的錯
怎么會狠心傷害我
親愛的那不是愛情
傷心時候可以聽情歌
愛上你等于愛上了錯
不是因為寂寞才想你