DllRegisterServer失败,错误代码为0x80004005

时间:2019-01-14 20:00:48

标签: com visual-foxpro regsvr32 dllregistration

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

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

在不是我的机器上,出现以下错误:

  

模块“ c:\ _ temp \ my.DLL”已加载,但对   DllRegisterServer失败,错误代码为0x80004005。

     

有关此问题的更多信息,请使用错误在线搜索   代码作为搜索词。

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

我可以在已注册的机器上使用我的机器,为什么不在其他机器上注册?


我已经将MSVCR70.dll手动复制到了不会注册的机器上的%systemroot%\SysWOW64目录中。

我已经用https://github.com/lucasg/Dependencies查看了相关性,一切看起来都很好。

dependencies screenshot

2 个答案:

答案 0 :(得分:0)

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

此外,VFP仅是32位应用程序/ dll,从来没有64位支持,因此您可能需要System32中的文件,而不是SysWow64。

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

C:\ SomePath \ YourVFP.dll

确保最终用户也具有对此路径/文件的权限。

除了上述几点之外,您是否还有VFP SOURCE代码/项目来构建DLL?

答案 1 :(得分:0)

根据Tamar的评论,我在可以注册该DLL的计算机上的注册表中搜索了此文件,然后发现了{CLSID}\Foxruntime\VFP7R.DLL

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