虚假的“无法加载控制,找不到许可证”错误?

时间:2019-01-08 20:20:22

标签: vb6

当我尝试在设计器中加载表单时,它显示“运行时错误0”并生成一个包含以下内容的日志文件:

Line 15: Cannot load control xxxx; license not found.

但是有问题的控件没有任何许可限制。它没有安装程序,只需要注册(regsvr32)。

不仅如此,而且多年来一直没有任何问题,只是最近才开始。它影响许多具有特定OCX控件的表格。

因此,似乎是在欺骗VB6认为许可检查失败或至少显示了无意义的错误消息。

我曾尝试使用Process Monitor对此进行跟踪,但是在日志中找不到任何有用的线索。至少,没有什么是明显有问题的。

任何想法可能导致这种情况吗?到目前为止,我不知所措。

谢谢

2 个答案:

答案 0 :(得分:0)

我假设这是第三方OCX。许多此类产品都带有自己的安装程序,该安装程序会生成许可证文件。仅复制甚至 .ocx ,甚至 regsvr32 都不足以在开发环境中使用它。如果您仍然具有原始的安装例程,则可以尝试运行该例程以重新生成许可证。失败的话,您可以在现有的运行中的开发计算机上(在 \ Windows \ System32 或VB6安装目录中,或在以下位置)查找名称正确的 .lic 文件。 .ocx 的安装目录),然后手动将其复制到新开发计算机上的同一位置。

答案 1 :(得分:0)

(回答我自己的问题,其他任何人都应该再次遇到这个问题)。


据我所知,此错误是由于FRX文件损坏严重和/或FRM / FRX文件对不同步引起的。

通过返回源代码管理,我最终可以找到一个没有问题的修订版。仅此一项就似乎消除了计算环境中的任何问题。 (例如,错误的VB6安装,磁盘空间等)

我手动重新进行了某些更改,并将较旧的代码恢复为最新状态,到目前为止,问题仍然没有出现。


编辑,删除的文字不正确,但不够具体-从那以后,我就知道了确切的根本原因。

问题是我们以一种VB6格式将32位ICO文件(图标)加载到了图像列表中。现在,传统上32位彩色图标在VB6中不可用,即使尝试这样做也会出现错误。但是出于某些原因,某些Windows PC现在允许使用此功能-可能是定时炸弹。

问题是:以这种方式保存的表单在不支持此类图标的另一台PC上运行时可能导致此问题中的错误。

这将在加载表单时在IDE中发生,或者如果编译的EXE在另一台计算机上运行时又遵守原始VB6图标的限制!

我不知道为什么在发生这种情况时会显示完全无意义的“许可”错误消息。

在我的情况下,我们没有故意引入此图标,这是一个错误,因此花了很长时间调试并最终弄清楚(加上VBForums上一些非常有价值的建议)。

我专门创建了a different question来尝试了解导致该问题的Windows底层元素已更改。