当我尝试在设计器中加载表单时,它显示“运行时错误0”并生成一个包含以下内容的日志文件:
Line 15: Cannot load control xxxx; license not found.
但是有问题的控件没有任何许可限制。它没有安装程序,只需要注册(regsvr32)。
不仅如此,而且多年来一直没有任何问题,只是最近才开始。它影响许多具有特定OCX控件的表格。
因此,似乎是在欺骗VB6认为许可检查失败或至少显示了无意义的错误消息。
我曾尝试使用Process Monitor对此进行跟踪,但是在日志中找不到任何有用的线索。至少,没有什么是明显有问题的。
任何想法可能导致这种情况吗?到目前为止,我不知所措。
谢谢
答案 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底层元素已更改。