Microsoft Office 1707 - MSCOMCTL.OCX - 您没有适当的许可证可使用此功能

问题描述:

我遇到了Microsoft Office 365 Business的一个奇怪问题。我有三个VB6 COM加载项,它们在我从内部版本1701升级到内部版本1707之前运行正常。现在,每当我的一个加载项显示一个对话框时,我现在都会收到运行时错误429,并显示“您不需要拥有使用此功能的适当许可“。Microsoft Office 1707 - MSCOMCTL.OCX - 您没有适当的许可证可使用此功能

我已经做了一些调试,问题似乎与使用MSCOMCTL.OCX。

奇怪的是,在VBA中的用户表单中使用OCX或在同一台机器上的编译EXE中使用OCX时,我不会收到同样的错误。

我已经检查了注册表,并且似乎在HKCR \ Licenses下有OCX的有效许可证条目。有其他人遇到过这个问题吗?

我正在运行Windows 10 Pro和Microsoft Office 365商业版1707(生成8326.2062即点即用)。

+0

我怀疑Office 365包含VB6 OCX的设计时许可证。然而,你似乎正在讨论在使用VB6编译的DLL中的运行时使用。在这种情况下,您可能会动态创建控件实例,并且未能在您的DLL中包含必要的许可证信息。在文档中查找'Licenses Collection'。 – Bob77

+0

感谢您的建议,但没有一个控件是动态创建的,因此我得到“控件'MSComctlLib.ListViewCtrl.2'不能被添加到Licenses集合中,因为它已被项目引用。” –

这可能是一个错误。

我认为它将通过替换MSCOMCTL.OCX来解决。

http://support.inera.com/support/solutions/articles/11000036093-july-august-2017-update-for-office-2016-version-1707-causes-paragraph-styling-dialog-to-disappear


32位版本的Windows:

  1. 复制文件[C:\ Program Files文件\的Microsoft Office \ ROOT \ VFS \ SystemX86 \ MSCOMCTL.OCX]到安全位置
  2. 将文件[C:\ Windows \ System32 \ mscomctl.ocx]复制到[C:\ Program Files \ Microsoft Office \ root \ VFS \ SystemX86],用旧文件覆盖此文件的较新版本

在版本的Windows:

  1. 复制文件[C:\ Program Files文件(x86)的\的Microsoft Office \ ROOT \ VFS \ SystemX86 \ MSCOMCTL.OCX]到安全的位置
  2. 将文件[C:\ Windows \ SysWOW64 \ mscomctl.ocx]复制到[C:\ Program Files(x86)\ Microsoft Office \ root \ VFS \ SystemX86],用此文件的新版本旧文件
+0

请在您的回答中添加更多详情;外部链接应仅用作补充参考,因为它们可能会中断 – Kai

+0

我可以确认用旧版本替换mscomctl32.ocx确实可以避免此问题。 我还能够在我的Windows 7构建环境中使用较新的ocx重新编译我的加载项。这也可以避免这个问题,但我必须针对旧版本进行设计,关闭IDE,更换OCX,然后执行命令行构建以避免在IDE中出现类似的错误。 –

今天,我解决了它,当我更新到16.0.8326.2087。