在VB6中开发的分布式Visio插件

在VB6中开发的分布式Visio插件,vb6,office-addins,visio,Vb6,Office Addins,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中将应用程序更改为Micr

我有旧的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虚拟机。还是有同样的错误

由于此dll在我的PC上工作,并且我的PC和VM/用户的PC之间唯一显著的区别是VB6 Enterprise IDE,因此我在VM上安装了Visual Basic 6 Enterprise,之后我也可以在那里注册dll。显然,我不能要求最终用户安装Visual Basic 6 Enterprise,我如何知道Addin项目模板的依赖关系?或者,在我的设置中,我应该捆绑来自VB6 Enterprise的哪些文件

这是生成的dll的依赖关系的屏幕截图,这里没有什么特别之处

Windows错误“0x80004005”尤其在用户因不可预见的原因被拒绝访问应用程序、服务或设备的情况下发生

来自的进程监视器可能会有所帮助。以管理员的身份运行它,创建一个合适的过滤器,看看是否有有用的东西弹出


Windows错误“0x80004005”尤其在用户因不可预见的原因被拒绝访问应用程序、服务或设备的情况下发生

来自的进程监视器可能会有所帮助。以管理员的身份运行它,创建一个合适的过滤器,看看是否有有用的东西弹出


事实证明,VB6 office加载项依赖于加载项设计器对象库msaddnr.dll,而该库在邮局2013中不可用

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


有关更多详细信息,VB6 office加载项依赖于加载项设计器对象库msaddnr.dll,该库在2013年邮局不可用

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


有关详细信息

这是否回答了您的问题?我以管理员的身份运行regsvr32,如果没有VB6 IDE,它将无法工作。您可能缺少一个COM依赖项,dependency Walker不会向您展示这一点。我会使用进程监视器或进程浏览器;看,这是否回答了你的问题?我以管理员的身份运行regsvr32,如果没有VB6 IDE,它将无法工作。您可能缺少一个COM依赖项,dependency Walker不会向您展示这一点。我会使用进程监视器或进程浏览器;看到和