我有一个使用CTL用户控件的旧VB6项目。 我可以在工具箱上看到用户控件。
如果我在项目内创建一个新表单,并尝试添加用户控件,它将失败,因为“错误加载DLL”并且无法添加控件。
但是,如果我创建一个新项目,则可以将用户控件添加到该项目中,然后以新的形式使用它,而不会出现问题。
第一个项目有什么问题,我不能使用其形式的用户控件?
以相同的方式,打开已经使用了用户控件的项目表单,则无法识别该控件。 似乎与原始项目中用户控件的路径/引用错误有关。
我试图再次添加用户控件,但它告诉我已经存在一个具有相同名称的用户控件。
如果我尝试退出用户控件以再次加载它,我将无法退出它,因为该控件正在项目中使用。我该怎么办?
感谢您的帮助。
答案 0 :(得分:1)
在文本编辑器中打开CTL文件(记事本就可以了)。
顶部可能有与以下内容相似的行:
VERSION 5.00
Object = "{5E9E78A0-531B-11CF-91F6-C2863C385E30}#1.0#0"; "MSFlxGrd.ocx"
可能有一行或多条Object=
行。
这些行中提到的至少一个文件很可能丢失或未在计算机上注册。
答案 1 :(得分:0)
不要问我为什么,但是成功的唯一方法是从头开始。 我从安装了Visual Studio SP6的干净Windows XP笔记本电脑开始。
当尝试加载和编译项目时,出现相同的错误。 如果尝试绘制用户控件的新实例也是如此:加载DLL时出错 如果尝试打开包含用户控件实例的窗体,也是如此:该控件在窗体(空白区域)中未被识别。
因此,我启动了一个新的空ActiveX DLL项目。 逐步添加所有对象,我可以加载所有对象(有一些小问题),但最终我可以编译项目。
添加对象的顺序很重要:引用和组件,用户控件,模块和类,设计器,最后是表单。
我试图在每个步骤上进行编译,以找出问题的原因,并了解必须添加的下一个对象。 但是不知道现在为什么会起作用。 还是谢谢你!
编辑2018-11-07:
我发现了初始项目的解决方法,可以毫无问题地使用CTL用户控件,并且可以在没有任何错误消息的情况下编译项目。我想在这里分享它,以帮助遇到类似问题的任何人。
我不知道为什么,也许任何人都可以给出解释,但是如果我打开项目,然后打开名为 frmDate 的设计器(参见图片),从那时起,我可以编译项目,并以任何形式使用用户控件。 发生了什么事?