尝试使用 Regsvr32.exe 注册 DLL 时收到0x80070005错误

本文提供了使用 Regsvr32.exe 注册 DLL 时发生的0x80070005错误的解决方案。

原始 KB 数: 827659

现象

尝试使用 Regsrv32.exe 命令行工具注册动态链接库(或 DLL 或.dll文件),DLL 未注册,并且可能会收到以下错误消息:

file_name.dll中的 DllRegisterServer 失败。

返回代码为:0x80070005

注意

此行为不会在 Windows NT 4.0 或 Windows 2000 中发生。

原因

如果在登录时尝试使用 Regsrv32 注册 DLL,但该帐户没有管理凭据,例如作为标准用户组成员的帐户,则可能会发生此行为。 没有管理凭据的帐户无法写入注册表或更改 System32 文件夹中的文件。

发生此行为的原因是 Windows XP 和 Windows Server 2003 使用比早期版本的 Windows 使用更严格的安全方案。 此方案可防止标准用户注册 DLL。

注意

由于此行为,标准用户可能无法使用标准用户的 ID 运行自注册 DLL 的程序。

解决方法

若要解决此行为,请使用管理员帐户登录,然后注册 DLL。

详细信息

只要 DLL 不写入注册表或更改 System32 文件夹中的文件,就可以使用没有管理凭据的帐户注册 DLL。