分发在VB6中开发的Visio插件

我有旧的VB6插件(Visio)源代码,在编译时会生成DLL。我需要将此dll分发给最终用户,但是当我在用户PC上以管理员身份运行以下命令时:

regsvr32 MyAddin.dll

它抛出:

The Module "MyAddin.dll" was loaded but the call to DllRegisterServer failed with error code 0x80004005.

为调试此问题,我创建了一个新的VB6外接程序项目,在Connect.Dsr中将“应用程序”更改为“ microsoft Visio”。并尝试将此dll安装到具有Visio的新Windows 10 VM。仍然出现相同的错误。

由于该dll在我的PC上可以运行,并且我的PC与VM /用户PC之间的唯一显着差异是VB6 Enterprise IDE,因此我在VM上安装了“ Visual Basic 6 Enterprise”,之后便可以在其中注册dll也一样显然,我不能要求最终用户安装Visual Basic 6 Enterprise,如何知道“ Addin”项目模板的依赖关系?还是应该在安装程序中捆绑VB 6 Enterprise的最低限度文件?

这是生成的dll依赖项的屏幕快照,在这里没什么花哨的

分发在VB6中开发的Visio插件

lyyliu 回答:分发在VB6中开发的Visio插件

Windows错误“ 0x80004005”特别是在由于不可预见的原因而拒绝用户访问应用程序,服务或设备的情况下发生。

来自https://docs.microsoft.com/en-us/sysinternals/downloads/procmon

Process Monitor可能会有所帮助。以管理员身份运行它,创建一个适当的过滤器,然后查看是否弹出有用的东西。

Procmon filter for regsvr32

,

最终VB6 Office加载项取决于加载项设计器对象库(msaddndr.dll),并且该库在Office 2013之后不可用

我注册了MSADDNDR.dll,它解决了问题。

有关更多详细信息,https://blogs.msdn.microsoft.com/vsod/2012/11/21/vb6-based-add-ins-may-fail-to-work-in-office-2013/

本文链接:https://www.f2er.com/2869389.html

大家都在问