microsoft和找你算帐的,哈哈哈......

解决方案 »

  1.   

    只是弥补一下VB6的缺憾呵呵.如果要真正用OO的方式编程,该选择.NET,Java
      

  2.   

    呵呵,大家可以不必看上面的介绍了:
    [摘要]
       DynamicClassFactory ,一个支持在VB6里实现真正意义的继承,多态,重载的库,目前,DynamicClassFactory还在开发中,预计月底出测试版,届时提供网友下载使用.
    [正文]
       DynamicClassFactory 将从根本上改变 VB6 开发者写作 类 的思维方式,支持您以纯面向对象的方式书写 类,比如:
       Public clsMyClass        As DynamicClassFactory.Class
       Set clsMyClass = DynamicClassFactory.NewClass(ClassName:="clsMyClass", CodeContainer:= Me)
       这样,一个新类就诞生了,名称为 clsMyClass,代码写作的位置在 Me
       类该具备一些成员函数,下面增加成员函数,看看 DynamicClassFactory 如果是如何处理的
       Call clsMyClass.Members.Add(Name:="MyFunc", InvokeType:=[Invoke Func],DefaultValue=Empty , ProcAddress:=1)
       这样,类就添加了一个名称 为 MyFunc 的函数,函数处理代码 放在 Me 的倒数第 1 (ProcAddress) 个 方法中
       这样,clsMyClass 的实例在调用 MyFunc 的函数时,将自动映射到 Me 中的该代码块,如下例,
       Private Sub MyFunc(Member As DynamicClassFactory.Member, InvokeType As  DynamicClassFactory.InvokeTypeEnum, Pms As DynamicClassFactory.Parameters, This As DynamicClassFactory.This, Result As DynamicClassFactory.Result)
         Result.Value = Pms(1).Value & Pms(2).Value & Pms(3).Value
           '//取得函数 返回值
       End Sub
       代码定义完毕,我们来尝试调用
       Dim MyInstance       As Object
       Set MyInstance = clsMyClass.NewInstance()
         '//取得 clsMyClass 的新实例
       Debug.Print MyInstance.MyFunc("A", "B", "C")
       我们 Debug 输出的结果将是 "ABC"
       有的时候,让们定义 某类成员处理函数的次序(ProcIndex),是很麻烦的,那有没有更好的处理办法呢?同样的例子,我们写在模块里,将更醒目,请注意 InitclsMyClass 中的第二行代码:
       Public clsMyClass        As DynamicClassFactory.Class   Public Sub InitclsMyClass()
         '//负责初始化 clsMyClass 类模板
         Set clsMyClass = DynamicClassFactory.NewClass(ClassName:="clsMyClass")
         Call clsMyClass.Members.Add(Name:="MyFunc", InvokeType:=[Invoke Func],DefaultValue=Empty , ProcAddress:=AddressOf MyFunc)
         '//添加以一个成员函数,其处理过程指向下面的 MyFunc 函数
       End Sub   Public Sub MyFunc(Member As DynamicClassFactory.Member, InvokeType As DynamicClassFactory.InvokeTypeEnum, Pms As DynamicClassFactory.Parameters, This As DynamicClassFactory.This, Result As DynamicClassFactory.Result)
         Result.Value = Pms(1).Value & Pms(2).Value & Pms(3).Value
           '//取得函数 返回值
       End Sub   当然了,当我们调用其实例的 MyFunc 函数时,将自动指向该Proc 进行处理,如:
       Dim MyInstance       As Object
       Set MyInstance = clsMyClass.NewInstance()
         '//取得 clsMyClass 的新实例
       Debug.Print MyInstance.MyFunc("A", "B", "C")  
       当然了,我们也可以这样来调用该接口:
       Dim MyInstance       As Object
       Dim Func             as DynamicClassFactory.Func
       Set MyInstance = clsMyClass.NewInstance()
         '//取得 clsMyClass 的新实例
       Set Func = MyInstance.getFunc("MyFunc")
         '//获得该成员函数
       Debug.Print Func.Invoke("A", "B", "C")  
         '//输出 
       这样的效果跟上述是一样的。
       待续,更多的精彩还在后头,下篇介绍,继承,多态,重载。
      

  3.   

    算了,没人响应,就不发布了,就拿着自己用吧呵呵。请求斑竹删贴,把前一篇也一起删除:
    http://community.csdn.net/Expert/topic/5694/5694549.xml?temp=.5872614
      

  4.   

    文件已经上传,在如下地址,
    http://file.mofile.com/
    然后左上角输入文件提取码,然后点提取文件,就可以下载了。
    这是个 Demo 版的,让大家看看呵呵。还称不上测试版呵呵。
      

  5.   

    Demo 中的 NormalTest 演示 DynamicClassFactory 是如何凭空创建类,并实现类的继承,多态,函数重载等特性。
    示例中用了三个类,最基础的类是 clsDog(狗),clsShepherdDog (牧羊犬),clsChinaShepherdDog(中国牧羊犬)
    clsDog 有两个属性和一个函数方法
      EyeNumber        眼睛的数量
      LegNumber        腿的数量
      Yaff             吠叫     函数原型 Yaff(ToYaff  As String)
    clsShepherdDog 继承自clsDog ,另外还具备自己的特性:
      Shepherd         放养,函数原型为 Shepherd(intCount As Integer),代表领着几只羊出去放
      另外,有一点 clsShepherdDog 很厉害,他的 Yaff 跟普通的狗不一样,普通的狗所有的东东都可以,而 clsShepherdDog 只会说 Yes Sir 和 No Sir
    老大当然是我们的 中国牧羊犬(clsChinaShepherdDog) 了,他除了继承 普通牧羊犬 的所有特性外,还有一点就是他很聪明,可以知道放羊结束后数羊(Count)然后向主人汇报结果(Report)
      Count           见到羊就数数量,并作加法运算,累计数量, 函数原型 Count(intCount As Integer)
      Report          汇报数量下面的例子将演示一只中国牧羊犬放羊,数羊并回来汇报的过程
    提供的机制非常简单,但是您能用这个机制写出什么类,那是我所没有办法想象的,因为这已经具备了OOP的最基本特质。
    这个版本由于是初级版本,速度还是一个问题,我会在下面的版本中注意这些特性的。
    下个版本中,我将增加构造函数的部分。
    最后,这个东东纯粹是为了弥补 Vb6 的一些缺憾,如果要想更爽地 OOP 建议用 DotNet 或是 Java,还有,就是不建议大面积使用,因为速度可能是一个无法突破的瓶颈。
    谢谢关注!                                             Howtell Soft
      

  6.   

    搬家了呵呵
    以后访问的话在如下地址:http://community.csdn.net/Expert/topic/5709/5709823.xml?temp=.7294275