Help and Support
 

powered byLive Search

Regsvr32 用法和错误消息的说明

文章编号:249873
最后修改:2008年4月25日
修订:5.0
如果本文没有介绍您收到的错误消息,请参见下面的 Microsoft 知识库文章以查看更多介绍错误消息的文章:
315854 (http://support.microsoft.com/kb/315854/) Windows 98 和 Windows Me 错误消息资源中心
有关详细的错误消息说明、推荐的操作及其他支持资源的更多信息,请访问下面的 Microsoft 网站:
http://www.microsoft.com/technet/support/ee/ee_advanced.aspx (http://www.microsoft.com/technet/support/ee/ee_advanced.aspx)
本页

概要

您可以使用 Regsvr32 工具 (Regsvr32.exe) 来注册或取消注册 OLE 控件,例如可自行注册的 DLL 或 ActiveX 控件 (OCX) 文件。这对于解决 Windows、Microsoft Internet Explorer 或其他程序的某些问题可能是必要的。例如,Microsoft 知识库中的以下文章要求您在从 Windows Update 网站重新安装 Wuv3is.dll 控件之前,先使用 Regsvr32.exe 取消注册该控件:
241122 (http://support.microsoft.com/kb/241122/) 单击产品更新时出现应用程序错误
如果控件注册失败,或者您需要了解有关如何解决 OLE 控件注册失败问题的开发人员信息,请参见 Microsoft 知识库中的以下文章:
140346 (http://support.microsoft.com/kb/140346/) OLE 控件注册失败的可能原因

回到顶端

更多信息

Microsoft Internet Explorer 3.0 或更高版本、Windows 95 OEM Service Release 2 (OSR2) 或更高版本以及 Windows NT 4.0 Service Pack 5 (SP5) 或更高版本中包含了 Regsvr32.exe。Regsvr32.exe 安装在 System (Windows Me/Windows 98/Windows 95) 或 System32 (Windows NT/Windows XP/Windows Vista) 文件夹中。

回到顶端

Regsvr32.exe 的用法

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

/u – 取消注册服务器
/i – 调用 DllInstall,为其传递一个可选 [cmdline];当与 /u 一起使用时,可调用 dll 卸载
/n – 不调用 DllRegisterServer;此选项必须与 /i 一起使用
/s – 静默;不显示任何消息框(附加在 Windows XP 和 Windows Vista 中)
在使用 Regsvr32.exe 时,它会尝试加载组件并调用它的 DLLSelfRegister 函数。如果此尝试成功,则 Regsvr32.exe 会显示一个提示成功的对话框。如果此尝试失败,则 Regsvr32.exe 会返回一条错误消息,其中可能包括 Win32 错误代码。 有关更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
193625 (http://support.microsoft.com/kb/193625/) INFO:WinInet 错误代码(12001 至 12156)
例如,要手动注册 Sample.ocx ActiveX 控件,请在命令提示符处键入以下命令:
c:\regsvr32.exe sample.ocx

回到顶端

Windows Vista 中的 Regsvr32.exe 错误消息

以下列表介绍了 RegSvr32 错误消息和可能的原因。

命令标志“%1”无效。请查看命令用法,然后重试。

在命令行中将无效的选项组合传递到 regsvr32.exe。

仅当打开 Microsoft Visual Studio OLE 自定义控件项目时,此命令才有效。

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 位)版本兼容。

例如,当在 x86 计算机上运行 regsvr32.exe,并且命令行中指定的模块为 64 位模块时,可能会发生此错误。

回到顶端

低于 Windows Vista 版本的 Regsvr32.exe 错误消息

以下列表介绍了 RegSvr32 错误消息和可能的原因。

无法识别的标志:/invalid_flag

键入的标志或开关组合无效(请参见本文中的“Regsvr32.exe 的用法”一节)。

没有指定 DLL 名。

未添加 .dll 文件名(请参见本文中的“Regsvr32.exe 的用法”一节)。

Dllname 已经载入,但未发现 DllRegisterServer 或 DllUnregisterServer 入口点。

Dllname 不是 .dll 或 .ocx 文件。例如,键入 regsvr32 wjview.exe 就会生成该错误消息。

Dllname 不是一个可执行文件;没有为这个文件类型注册的注册帮助程序。

Dllname 不是可执行文件(.exe、.dll 或 .ocx)。例如,键入 regsvr32 autoexec.bat 就会生成该错误消息。

Dllname 已经载入,但未发现 DllRegisterServer 或 DllUnregisterServer 入口点。

Dllname 可能没有导出,或内存中存在已损坏的 Dllname 版本。建议使用 Pview 来检测该文件并删除它。

Dllname 无法自行注册,或内存中存在已损坏的版本。

例如,键入 regsvr32 icwdial.dll 后就会返回该错误消息,因为 Icwdial.dll 文件不能自行注册。如果您怀疑内存中有损坏的 Dllname 版本,请尝试重新启动计算机,或重新解压缩该文件的原始版本。如果您运行的是 Windows NT,可能需要使用 Microsoft Windows NT Server 4.0 资源工具包 中的 Kill 或 Pview 工具。有关其他信息,请单击以查看下面的 Microsoft 知识库文章:
197155 (http://support.microsoft.com/kb/197155/) 如何终止孤立进程
OleInitialize 失败(或 OleUninitialize 失败)。

Regsvr32 必须先初始化 COM 库,然后才能调用所需的 COM 库函数并在关闭时撤消对该库的初始化。如果尝试对 COM 库进行初始化或撤消初始化时失败,就会出现这些错误消息。例如,Ole32.dll 文件可能已经损坏,或者其版本有误。

LoadLibrary("Dllname") 失败。GetlastError 返回 0x00000485

在 Winerror.h 中,0x00000485 = 1157 (ERROR_DLL_NOT_FOUND),表示“执行该应用程序所需的库文件之一无法找到”。例如,键入 regsvr32 missing.dll 后,如果找不到 Missing.dll 文件,就会返回该错误消息。

LoadLibrary("Dllname") 失败。GetLastError 返回 0x00000002

在 Winerror.h 中,0x00000002 = 2 (ERROR_FILE_NOT_FOUND),表示“系统找不到指定的文件”。换言之,系统找不到相关的 DLL。例如,如果键入 regsvr32 icwdial.dll,而此时缺少 Tapi32.dll(依赖项),就会返回该错误消息。

LoadLibrary("dskmaint.dll")失败。GetLastError 返回 0x000001f

在 Winerror.h 中,0x000001f = 31 (ERROR_GEN_FAILURE),表示“连到系统上的设备没有发挥作用”。如果您尝试注册 Win16 .dll 文件,就会发生此现象。例如,键入 regsvr32 dskmaint.dll 会返回该错误消息。

Dllname 中的 DllRegisterServer (或 DllUnregisterServer)失败。返回代码是:string

在 Winerror.h 中搜索 string

回到顶端


这篇文章中的信息适用于:
?Windows Vista Enterprise
?Windows Vista Business
?Windows Vista Business N 64-bit Edition
?Windows Vista Home Basic
?Windows Vista Home Basic N
?Windows Vista Home Basic N 64-bit Edition
?Windows Vista Home Premium
?Windows Vista Starter
?Windows Vista Ultimate
?Windows Vista Business N
?Windows Vista Business 64-bit edition
?Microsoft Windows XP Home Edition
?Microsoft Windows XP Media Center Edition
?Microsoft Windows XP Professional Edition
?Microsoft Windows XP Professional N
?Microsoft Windows XP Home Edition N
?Microsoft Windows XP Tablet PC Edition
?Microsoft Windows 2000 Server
?Microsoft Windows 2000 Advanced Server
?Microsoft Windows 2000 Professional Edition
?Microsoft Windows 2000 Datacenter Server
?Microsoft Windows Millennium Edition
?Microsoft Windows 98 Standard Edition
?Microsoft Windows 98 第二版
?Microsoft Windows 95
?Microsoft Windows NT Workstation 4.0 开发员版
?Microsoft Windows NT Workstation 4.0
?Microsoft Windows NT Server 4.0 Standard Edition
?Microsoft Windows NT 4.0 Service Pack 1
?Microsoft Windows NT 4.0 Service Pack 2
?Microsoft Windows NT 4.0 Service Pack 3
?Microsoft Windows NT 4.0 Service Pack 4
?Microsoft Windows NT 4.0 Service Pack 5
?Microsoft Windows NT 4.0 Service Pack 6
?Microsoft Windows NT 4.0 Service Pack 6a

回到顶端

关键字:?
kbresolve kbenv kberrmsg kbinfo kbkern32dll KB249873

回到顶端

Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、间接的、衍生性的损害或任何因使用而丧失所导致的之损害、数据或利润不负任何责任。

文章翻译

 

Other Support Options

  • Need More Help?
    Contact a Support professional by E-mail, Online or Phone.
  • Customer Service
    For non-technical assistance with product purchases, subscriptions, online services, events, training courses, corporate sales, piracy issues, and more.
  • Newsgroups
    Pose a question to other users. Discussion groups and Forums about specific Microsoft products, technologies, and services.