我写了一个工程是ActiveX dll类型的,但是运行时出现如下问题:没有检测可创建的公有类模块。按 F1 键以获取多的信息
ActiveX EXE, ActiveX DLL 以及 ActiveX 控件这些工程类型,需要至少一个公有的可创建的类模块。我想知道什么是可创建的公有类模块?怎么解决以上这个问题?
ActiveX EXE, ActiveX DLL 以及 ActiveX 控件这些工程类型,需要至少一个公有的可创建的类模块。我想知道什么是可创建的公有类模块?怎么解决以上这个问题?
解决方案 »
- WshShell.Run 不能运行快捷方式了
- 窗口打开后 如何让datacombo控件默认选择第一个数据
- 关于程序安装/编译问题!
- 紧急!!关于应用程序实现打印功能出错
- 想学习RS232串口编程,有几个问题问一下.
- RDLC 报表问题,感谢!!
- 注冊表高高手請進﹐不怕沒有分﹐就怕解決不了﹗
- 扫描下来的内容都是文字,只能作为图片被处理,可以用什么工具使它可以象在WORD里一样被修改吗?
- 在vb中如何获取系统输入法?
- vba 从后台,动态的往sheet页中的shape写文字,最多就能写255个字符
- [提问]怎样用vb解释并计算一段表示“四则运算”的字符串?高分,不够再加贴。
- 如何让没有定义的变量不能通过编译?
Instancing 属性设置一个值,确定能否在工程之外创建公共类的实例。如果可以,如何实现。运行时无效。Instancing 属性设置如下:设置 描述
1 (缺省)私有。不允许其它应用程序访问关于类的类型库信息,也不能创建该类的实例。私有对象只能在自己的部件中使用。
工程类型不同,实例属性缺省也不同。只有对于Standard Exe工程中的类模块,私有才是缺省的。当在 ActiveX Exe 工程或ActiveX DLL工程中插入一个新的类模块时,Instancing 属性的缺省值是 MultiUse。当在 ActiveX 控件工程中插入一个新的类模块时,Instancing 属性的缺省值是 PublicNotCreatable。
2 PublicNotCreatable。只有在自己的部件首先创建了对象的前提下,其它应用程序才能应用此类的对象。不能用 CreateObject 函数或 New 操作符来创建类对象。
3 SingleUse。允许其它应用程序从这个类创建对象,但客户创建的该类的每个对象都启动部件的一个新的实例。在 ActiveX DLL 工程中是不允许的。
4 GlobalSingleUse。类似于 SingleUse ,除了此类的各种属性和方法可以象简单的全局函数那样被调用。在 ActiveX DLL 工程中是不允许的。
5 MultiUse。允许其它应用程序从这个类创建对象。部件的一个实例可提供按此方式创建的任意数目的对象。
6 GlobalMultiUse。类似于 MultiUse,只附加了一点:这个类的各种属性和方法可以象简单的全局函数那样被调用。该类的实例不需要显式创建,因为它会自动创建。 设置 应用的工程类型
ActiveX Exe ActiveX DLL ActiveX Contol Std. Exe
Private X X X X
PublicNotCreatable X X X
SingleUse X
GlobalSingleUse X
MultiUse X X
GlobalMultiUse X X
说明在 Visual Basic 5.0 里,Instancing 属性应用于 Class 模块,并得到扩展,以便与 Visual Basic 4.0 Public 属性的功能合并在一起。如果类是可创建的,从其它应用程序创建该类的实例,可用下面的任何一种技术: 用 CreateObject 函数,如:
Set MyInstance = CreateObject("MyProject.MyClass")在同一工程里(或当 Public 属性设为 True 时,在工程之外)用 Dim 语句,如:
Dim MyInstance As New MyClass关键字 New 表明 MyInstance 被声明为 MyClass 的一个新实例。如果 Public 属性为 False,则 Instancing 属性被忽略。总可以在定义该类的工程内创建类实例。如果 Public 属性为 True,则此类可视。因此一旦该类的实例存在,那么它是能受控于其它应用程序的。注意 GlobalMultiUse 对象的各种属性和方法,不是提供对象的部件的全局名空间的一部分。例如,在包含 GlobalUtility 类模块的工程内部,为了使用这个对象的各种属性和方法,必须显式创建 GlobalUtility 的实例。全局对象的其它限制,列在“部件工具指南”的“编译代码部件”的“全局对象和代码库”中。
察看类的属性页(F4),里面的Instancing属性
1:私有,外部不可见,也就无法调用
2:公共不可创建,通常用做其他类的属性、集合的成员
5:公共,最常用的类型
6:公共全局,在 5 的基础上多一个特性,会自动创建一个同名的实例,比如 VB 中的 App 对象