在VB6下真正实现继承等

时间:2013-12-12 06:01:33
【文件属性】:

文件名称:在VB6下真正实现继承等

文件大小:117KB

文件格式:RAR

更新时间:2013-12-12 06:01:33

VB6 继承

'------------------------------------------------------------------------------------------------------------------------------------------ '本示例旨在向您展示如何在VB6下实现真正的继承,如何使用DyCOMHelper创建类,并使用,它将带您进入VB6背后的COM世界,看看我们的类是如何运行的。 'DyCOMHelper创建的对象的特点: '1、可以像VB6下定义的对象一样去使用,虽然不是VB6机制创建,但是可以被VB6当作对象来识别使用。 '2、支持后期绑定,支持错误处理,支持多接口等常规应用。 '3、支持真正意义上的继承,本示例将说明这一点。 '4、所创建的对象是轻量对象,实例占用的起步空间更小,约VB类的1/5。 '5、函数调用速度高出20% 左右 '6、实例创建的速度,最大可以提高近10倍 '7、释放速度,最大可以提高近100倍。(以上速度来自于极限测试数据) '8、创建模式比VB6更丰富,VB6的类实例,是在堆上进行创建的,效率很低,DyComHelper可以选择堆、堆栈是进行创建,也可以从某个结构上创建,也可以用内置的定长管理器进行创建。 '9、从类实例外部,访问内部数据时,支持真正意义的指针式访问。 '10、使用DyCOMHelper创建类,将让您的系统支持成千上万个类,而不会担心效率问题。 ' '读这个示例您可能会问的问题: ' 1、类型库,怎么来的?目前是我使用工具手动创建。未来,我将推出VB6插件,在VB6下直接书写代码生成类型库并自动引用。 ' '使用前,请先执行下列顺序: ' 1、引用 Types目录下 DyCOMHelperType.tlb,TestInheritLib.tlb。 ' 2、按F8开始逐步断点执行,看看它是如何工作的。 '示例中,有三个类,Animal、Wolf、Demiwolf,分别是动物、狼、狼狗,狼狗继承自狼,狼继承自动物,动物派生自IDispatch。 '------------------------------------------------------------------------------------------------------------------------------------------


【文件预览】:
modMain.bas
TestInherit.vbw
modAnimal.bas
MSSCCPRJ.SCC
Types
----DyCOMHelperType.tlb(37KB)
----TestInheritLib.tlb(3KB)
modDemiwolf.bas
DyCOMHelperLib.Dll
TestInherit.lvw
TestInherit.vbp
TestInherit.map
DyCallerLib.dll
TestInherit.csi
modWolf.bas

网友评论

  • 编绎后运行错误 ,Automation 错误
  • 值得借鉴,但VB还是接口实现继承来的实在,要不就用VB.NET吧.
  • 编译成dll,在继承。注释太少,不太方便阅读代码。只是技术上实现了,不过并没有提高多少效率。毕竟是一门”古老“的语言。。。。
  • 里面有很多东西可以值得借鉴。作者应该提供编译好的acitveX版的dll。我用源码重新编译,提示有错误
  • Call Types.Animal.ImplementsInterface("DyTestInheritType", _ g.TypeLib.GetInterface("Animal"), 最后这点提示:加载dll错误,什么原因啊?
  • 不错,值得借鉴