我有旧的VB6 Addin (Visio)源代码,在编译时生成DLL。我需要将这个dll分发给最终用户,但是当我以管理员身份在用户的PC上运行时:
regsvr32 MyAddin.dll它抛出:
The Module "MyAddin.dll" was loaded but the call to DllRegisterServer failed with error code 0x80004005.为此,我创建了一个新的VB6 Addin项目,将应用程序更改为Connect.Dsr中的"Microsoft“。并尝试将此dll安装到具有Visio的新windows 10 VM中。仍然有同样的错误。
由于这种动态链接库工作在我的PC机上,而我的PC机和VM /用户PC机之间唯一的区别是VB6 Enterprise,所以我在VM上安装了“VISUALBASIC6Enterprise”,之后我也在那里注册了dll。显然,我不能要求最终用户安装VisualBasic6Enterprise,我如何知道"Addin“项目模板的依赖关系?或者,在我的设置中,我应该捆绑VB6Enterprise中的最小文件吗?
这是生成的dll依赖的屏幕截图,这里没有什么特别之处

发布于 2019-12-24 08:44:42
Windows错误“0x80004005”特别发生在由于不可预见的原因而拒绝用户访问应用程序、服务或设备的情况下。
来自https://learn.microsoft.com/en-us/sysinternals/downloads/procmon的进程监视器可能会有所帮助。作为管理员运行它,创建一个适当的过滤器,看看是否有什么有用的弹出。

发布于 2019-12-25 23:18:42
结果显示,VB6办公室加载项取决于外接程序设计器对象库(msaddndr.dll),并且该库不可用
我注册了MSADDNDR.dll,它解决了这个问题。
有关更多细节,https://blogs.msdn.microsoft.com/vsod/2012/11/21/vb6-based-add-ins-may-fail-to-work-in-office-2013/
https://stackoverflow.com/questions/59463345
复制相似问题