简体   繁体   English

DllRegisterServer失败,错误代码为0x80004005

[英]DllRegisterServer failed with error code 0x80004005

When I try to register a Visual FoxPro DLL via an administrator command prompt: 当我尝试通过管理员命令提示符注册Visual FoxPro DLL时:

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

on machines that are not mine I get the following error: 在不是我的机器上,出现以下错误:

The module "c:\\_temp\\my.DLL" was loaded but the call to DllRegisterServer failed with error code 0x80004005. 已加载模块“ c:\\ _ temp \\ my.DLL”,但对DllRegisterServer的调用失败,错误代码为0x80004005。

For more information about this problem, search online using the error code as a search term. 有关此问题的更多信息,请使用错误代码作为搜索词在线搜索。

I am able to register it on mine. 我可以在我的网站上注册。 How do I get more info as to why it is failing? 我如何获得有关失败原因的更多信息?

Can I use my machine where it does register to back into why it doesn't register on other machines? 我可以在已注册的机器上使用我的机器,以回溯为什么不在其他机器上注册吗?


I've manually copied MSVCR70.dll into the %systemroot%\\SysWOW64 directory on the machine that it won't register on. 我已经将MSVCR70.dll手动复制到了不会注册的机器上的%systemroot%\\SysWOW64目录中。

I've reviewed the dependencies with https://github.com/lucasg/Dependencies and everything looks good. 我已经通过https://github.com/lucasg/Dependencies审查了依赖性,一切看起来都很好。

依赖截图

I have typically found and associated 0x80004005 with permissions. 我通常发现0x80004005并将其与权限相关联。 Did you try to run the DOS prompt AS ADMINISTRATOR? 您是否尝试过以管理员身份运行DOS提示符?

Also, VFP is ONLY a 32-bit application/dll, it was never 64-bit support, so you probably need the files in System32, not SysWow64. 另外,VFP仅是32位应用程序/ dll,从来没有64位支持,因此您可能需要System32中的文件,而不是SysWow64。

Permissions might also need to be confirmed for those USING the dll. 对于使用dll的用户,可能还需要确认权限。 Ex: you install with admin permissions to drive 例如:您以管理员权限安装

C:\\SomePath\\YourVFP.dll C:\\ SomePath \\ YourVFP.dll

Make sure the end-user has permissions to this path/file as well. 确保最终用户也对此路径/文件具有权限。

Aside from the above points... Do you have the VFP SOURCE code / project to build the DLL? 除了上述几点之外,您是否还具有VFP SOURCE代码/项目来构建DLL?

Based upon the comment from Tamar , I searched the registry for this DLL on a machine where I could register it and I found {CLSID}\\Foxruntime\\VFP7R.DLL . 根据Tamar的评论,我在可以注册该计算机的计算机上的注册表中搜索了此文件,并发现了{CLSID}\\Foxruntime\\VFP7R.DLL

I installed the VFP 7 Runtime from here (github.com/VFPX/VFPRuntimeInstallers) and I was able to register the DLL 😊 我从这里(github.com/VFPX/VFPRuntimeInstallers)安装了VFP 7 Runtime,并且能够注册DLL😊

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM