当我尝试通过管理员命令提示符注册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查看了相关性,一切看起来都很好。
答案 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