注册 Visual Fox Pro 时 DllRegisterServer 失败,错误代码为 0x80004005

DllRegisterServer failed with error code 0x80004005 when registering Visual Fox Pro

当我尝试通过管理员命令提示符注册 Visual FoxPro DLL 时:

C:\Windows\SysWOW64>regsvr32 C:\_temp\my.dll

在非我的机器上我收到以下错误:

The module "c:\_temp\my.DLL" was loaded but the call to DllRegisterServer failed with error code 0x80004005.

For more information about this problem, search online using the error code as a search term.

我可以在我的上注册它。我如何获得有关失败原因的更多信息?

我可以在它注册的地方使用我的机器来回溯为什么它没有在其他机器上注册吗?


我已将 MSVCR70.dll 手动复制到无法注册的计算机上的 %systemroot%\SysWOW64 目录中。

我已经检查了 https://github.com/lucasg/Dependencies 的依赖关系,一切看起来都很好。

我通常会找到 0x80004005 并将其关联到权限。您是否尝试以管理员身份 运行 DOS 提示符?

此外,VFP 仅是 32 位 application/dll,它从未支持 64 位,因此您可能需要 System32 中的文件,而不是 SysWow64 中的文件。

使用 dll 的用户可能还需要确认权限。例如:您使用管理员权限安装驱动器

C:\SomePath\YourVFP.dll

确保最终用户也对此有权限 path/file。

除了以上几点...您是否有构建 DLL 的 VFP 源代码/项目?

根据 Tamar 的评论,我在可以注册它的机器上搜索此 DLL 的注册表,然后找到 {CLSID}\Foxruntime\VFP7R.DLL

我从 here (github.com/VFPX/VFPRuntimeInstallers) 安装了 VFP 7 Runtime 并且我能够注册 DLL