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

问题描述 投票:0回答:2

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

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

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

不仅如此,多年来这一直没有任何问题,直到最近才开始。它影响许多具有来自特定 OCX 的控件的表单。

看来有什么东西在欺骗 VB6 要么认为许可证检查失败,要么至少显示一条无意义的错误消息。

我尝试使用进程监视器来跟踪这一点,但我在日志中找不到任何有用的线索。至少,没有什么明显有问题。

有什么想法可能会导致这种情况吗?到目前为止我还找不到原因。

谢谢

vb6
2个回答
0
投票

我假设这是第三方 OCX...许多此类产品都带有自己的安装程序,可以生成许可证文件;简单地复制,甚至 regsvr32ing .ocx 也不足以在开发环境中使用它。如果您仍然有原始安装例程,您可以尝试运行它来重新生成许可证。如果做不到这一点,您可以在现有的工作开发计算机上(在 \Windows\System32 或 VB6 安装目录中,或者在 .ocx 所在的目录中)查找适当命名的 .lic 文件。安装)并手动将其复制到新开发计算机上的同一位置。


0
投票

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

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

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


编辑删除的文本并不不正确,但也不够具体——我已经了解到似乎是根本原因了。

问题是我们将 32 位 ICO 文件(图标)加载到其中一种 VB6 形式的图像列表中。现在,传统的 32 位颜色图标在 VB6 中不可用,即使尝试这样做也会出错。然而,出于某种原因,某些 Windows PC 现在允许这样做 - 这可能是一个定时炸弹。

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

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

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

就我而言,我们并不是故意引入这个图标,这是一个错误,因此花了很长时间进行调试并最终解决了这个问题(加上来自VBForums上的人们的一些非常有价值的建议)。

我创建了一个不同的问题,专门尝试了解导致此问题的 Windows 底层元素发生了哪些变化。

© www.soinside.com 2019 - 2024. All rights reserved.