我有一个 VB6 ActiveX 控件项目(创建一个.OCX
),它有几个用户控件。控件正在由 EXE(也是 VB6)加载。当我直接运行 EXE 时,它运行正常,但是当我尝试在调试器中运行它时(我需要单步执行代码),它无法加载用户控件(.ctl),给我“类未注册. 正在寻找具有 CLSID 的对象:..." 消息
我设置了二进制兼容性(保留了所有旧的 GUID),并且我在注册表中看到了类,一切看起来都很好——只是没有在调试器中运行。
请问有什么帮助吗?
十多年来,我一直在使用 VB6。问题是 VBP 项目引用与您的 OCX 用户控件的最新版本不同步。只需将项目作为一个组打开或单独打开 EXE 项目,然后单击 Project->Components。
您现在将看到两件事之一。参考将无效,或者您选择了有效的参考。无论哪种方式,取消选中参考并单击确定(在此操作期间不要重新选择它..相信我)。现在,关闭该对话框并返回 Projects->Components,现在从列表中选择您的 OCX 控件。这将解决您的问题。如果您的 OCX 不在列表中,请先独立重建它并重试。
这是 VB6 IDE 的一个未记录的错误。即使使用 VB6 SP6 也没有解决。