Regsvr32用法和錯誤消息的說明
Regsvr32用法和錯誤消息的說明
Regsvr32
用法和錯誤消息的說明對於那些能夠自行註冊的對象連接和嵌入
(OLE)
控件,例如動態連接庫
(DLL)
文件或
ActiveX
控件
(OCX)
文件,您能夠使用
Regsvr32
工具
(Regsvr32.exe)
來將它們註冊和取消註冊。
Regsvr32.exe
的用法
RegSvr32.exe
具備如下命令行選項:
Regsvr32[/n][/i[:cmdline]]dllname/u- Unregisterserver
/i-CallDllInstallpassingitanoptional[cmdline];whenusedwith /ucallsdlluninstall/n- donotcallDllRegisterServer;thisoptionmustbeusedwith/i
當您使用
Regsvr32.exe
時,它
會嘗試加載該組件並調用它的
DLLSelfRegister
函數。若是此嘗試成功,
Regsvr32.exe
會顯示一個指示成功的對話框。若是此嘗試失
敗,
Regsvr32.exe
會返回一條錯誤消息,其中可能會包括一個
Win32
錯誤代碼。要查看
Win32
錯誤代碼的列表,請參見下面的
MicrosoftWeb
站點:
[url]http://msdn.microsoft.com/librar...n32_error_codes.asp[/url]
例
如,要手動註冊
Sample.ocxActiveX
控件,請在
MS-DOS
提示符處鍵入如下命令:
c: egsvr32.exesample.ocxRegsvr32.exe
錯誤消息如下列表介紹了
RegSvr32
錯誤消息和可能的緣由。
Unrecognizedflag:/invalid_flag
鍵入的標誌或開關組合無效(請參閱本文中的
「Regsvr32.exe
的用法
」
一節)。
NoDLLnamespecified.
未包括
.dll
文件名(請參閱本文中的
「Regsvr32.exe
的用法
」
一節)。
Dllnamewasloaded,buttheDllRegisterServerorDllUnregisterServerentrypointwasnotfound.Dllname
不是
.dll
或
.ocx
文件。例如,鍵入
regsvr32wjview.exe
就會生成該錯誤消息。
Dllnameisnotanexecutablefileandnoregistrationhelperisregisteredforthisfiletype.Dllname
不是可執行文件(
.exe
、
.dll
或
.ocx
)。例如,鍵入
regsvr32autoexec.bat
就會生成該錯誤消息。
Dllnamewasloaded,buttheDllRegisterServerorDllUnregisterServerentrypointwasnotfound.Dllname
可能未導出,或者內存中可能有損壞的
Dllname
版本。請考慮使用
Pview
來檢測該文件並刪除它。
Dllnameisnotself- registerableoracorruptedversionisinmemory.
例如,鍵入
regsvr32icwdial.dll
後就會返回該
錯誤消息,由於
Icwdial.dll
文件不能自行註冊。若是您懷疑內存中有損壞的
Dllname
版本,請嘗試從新啓動計算機,或從新提取該文件的原始版
本。若是您運行的是
WindowsNT
,可能須要使用
MicrosoftWindowsNTServer4.0
資源工具包中的
Kill
或
Pview
工具。
有關其餘信息,請單擊以查看如下
Microsoft
知識庫文章:
197155
如何終止孤立進程
OleInitializefailed(orOleUninitializefailed).Regsvr32
必須先初始化
COM
庫,而後才能調用所需
的
COM
庫函數並在關閉時撤消對該庫的初始化。若是對
COM
庫進行初始化或撤消初始化的嘗試失敗,就會出現這些錯誤消息。例如,
Ole32.dll
文件可
能已經損壞,或者其版本有誤。
LoadLibrary("Dllname")failed.GetlastErrorreturns0x00000485
在
Winerror.h
中,
0x00000485=1157(ERROR_DLL_NOT_FOUND)
,表示
「
找不到運行該應用程序所需的某個庫文件
」
。例如,鍵入
regsvr32missing.dll
後,若是找不到
Missing.dll
文件,就會返回該錯誤消息。
LoadLibrary("Dllname")failed.GetLastErrorreturns0x00000002
在
Winerror.h
中,
0x00000002=2(ERROR_FILE_NOT_FOUND)
,表示
「
系統找不到指定的文件
」
。換言之,系統找不到相關的
DLL
。例如,如
果鍵入
regsvr32icwdial.dll
,而此時缺乏
Tapi32.dll
(依賴項),就會返回該錯誤消息。
LoadLibrary("dskmaint.dll")failed.GetLastErrorreturns0x000001f
在
Winerror.h
中,
0x000001f=31(ERROR_GEN_FAILURE)
,表示
「
附加到系統上的設備不能正常工做
」
。若是您嘗試註冊
Win16.dll
文件,就會發生此現象。例如,鍵入
regsvr32dskmaint.dll
會返回該錯誤消息。
DllRegisterServer(orDllUnregisterServer)inDllnamefailed.
返回代碼是:字符串在
Winerror.h
中搜索字符串。
Regsvr32.exe
和依賴項
RegSvr32.exe
依賴於
Kernel32.dll
、
User32.dll
和
Ole32.dll
文件(在
WindowsNT
中,還依賴於
Msvcrt.dll
和
Advapi32.dll
文件)。
Regsvr32.exe
會加載您嘗
試註冊或撤消註冊的文件及其全部依賴項。若是缺乏必需的文件或者它們已損壞,該進程可能會失敗。您能夠使用
Depends.exe
來肯定您嘗試註冊或撤消
註冊的文件的依賴項。在
MicrosoftWindows98
資源工具包和
MicrosoftWindowsNT4.0
資源工具包支持工具中都提供了
Depends.exe
。
247024ToolsIncludedwiththeMicrosoftWindows98ResourceKit
歡迎關注本站公眾號,獲取更多信息