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