新工程-ActiveX DLL
在类模块中写上
Event xxxxxPublic Sub xxxxx
Public Function xxxxxx as yyyyy
Public Property Get xxxx as yyyy
pubilc property Let xxxx(New_xxxx as yyyy)
pubilc property set xxxx(New_xxxx as yyyy)之类的语句,并合理设置类的Instancing属性,就能基本入门。
参考“类模块向导”,很有帮助!使用编译好的ActiveX DLL时,从你的工程(Exe工程)中选择菜单“工程”-“引用”,选择你刚才编译的DLL工程即可。
调用方法与普通的Function/Sub/Property/Event用法没有任何区别,这就是微软自动封装接口的好处!我喜欢!另外,如果对你有帮助,请回复我的一个帖子:
http://www.csdn.net/expert/topic/654/654811.xml?temp=.8152735
主题:  我自认VB水平不错,请大家给我估估价!

解决方案 »

  1.   

    Instancing属性?能否解释一下?谢谢
      

  2.   


    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 的实例。全局对象的其它限制,列在“部件工具指南”的“编译代码部件”的“全局对象和代码库”中。
      

  3.   

    Instancing属性?能否解释一下?谢谢在"工程"中的“属性”设置实例选项,比如是单线程或单元线程。
      

  4.   

    顺便问一下Class_Initialize和Class_Terminate这两个函数时不是特殊的函数
    他们在类被引用和被释放时自动执行?
    如果不是能否为我解释一下?
    如果是,是否还有类似的函数?
      

  5.   

    Class_Initialize在初始化类实例时肯定自动执行(VB6或VB.Net都是)。
    Class_Terminate在类实例被释放时不一定自动执行。其中,VB6在同一个类实例的所有引用(含工程内部自引用)都释放时,自动执行;而VB.Net要在上述条件满足之后,滞后一段时间才自动执行,这是因为自动回收内存的机制已经不同了……另外,如果对你有帮助,请回复我的一个帖子:
    http://www.csdn.net/expert/topic/654/654811.xml?temp=.8152735
    主题:  我自认VB水平不错,请大家给我估估价!
      

  6.   

    请问:
    http://www.csdn.net/Expert/Forum.asp?TypeNum=7&roomid=0
    谢谢