DyCOMHelper--让您在VB6下实现真正意义的继承(摘于CSDN)
作者:admin 日期:2010-12-06
经过近2个月的Coding,终于完工了。
该库您可以免费使用,如果用作商业用途,请来Email告知我justthisone@hotmail.com
DyCOMHelper,可以让您在模块里创建对象,并使用,很多VB下不能直接实现的函数,指针访问,还有多。将陆续贴出。
本贴主要展示如何用它创建对象,如何实现继承。
在这个库的实现过程中,付出最多的是对IDispatch.Invoke的实现。
本示例旨在向您展示如何在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开始逐步断点执行,看看它是如何工作的。
目录下 的 DyCallerLib.dll DyCOMHelperLib.dll是不需要注册的。其中 DyCOMHelperLib.dll 是标准Dll。
示例中,有三个类,Animal、Wolf、Demiwolf,分别是动物、狼、狼狗,狼狗继承自狼,狼继承自动物,动物派生自IDispatch。
下载地址为:
点击下载此文件
********************************************************************
原帖地址:
http://topic.csdn.net/u/20101122/12/9f2a4da0-3010-445a-a33b-7389430f1c87.html
该库您可以免费使用,如果用作商业用途,请来Email告知我justthisone@hotmail.com
DyCOMHelper,可以让您在模块里创建对象,并使用,很多VB下不能直接实现的函数,指针访问,还有多。将陆续贴出。
本贴主要展示如何用它创建对象,如何实现继承。
在这个库的实现过程中,付出最多的是对IDispatch.Invoke的实现。
本示例旨在向您展示如何在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开始逐步断点执行,看看它是如何工作的。
目录下 的 DyCallerLib.dll DyCOMHelperLib.dll是不需要注册的。其中 DyCOMHelperLib.dll 是标准Dll。
示例中,有三个类,Animal、Wolf、Demiwolf,分别是动物、狼、狼狗,狼狗继承自狼,狼继承自动物,动物派生自IDispatch。
下载地址为:

********************************************************************
原帖地址:
http://topic.csdn.net/u/20101122/12/9f2a4da0-3010-445a-a33b-7389430f1c87.html
评论: 1 | 引用: 0 | 查看次数: 1040
http://blog2.m5home.com/blogview.asp?logID=365
原始包我也没有了......