如何在VB6.0里动态使用具有事件的对象(又来一篇)
作者:admin 日期:2008-12-17
有些对象有事件,如果使用声明为Object的方式,是无法得到事件的.
想使用其事件就得引用此DLL.
如果既想动态调用DLL中的对象,又想使用对象的事件,可以试一下本文的方法(完整代码见后).
总体思路比较简单,如下:
一,利用EditTlb工具(Matthew Curland大师作品,后面有下载)打开目标DLL,直接另存为TLB.
然后再用EditTlb打开这个TLB,改一下GUID,类接口的名称,保存备用.
二,EXE工程里引用这个TLB,利用其中与DLL中对象一模一样的接口,写好事件相
关代码.
三,使用CreateObject创建对象.
如果DLL正确地注册了,那么就会成功,否则会失败.
其中EditTlb工具是重点,让本来需要用ODL语言生成TLB的过程成为过去....
在这种应用中,完全没必要折腾ODL语言,所以有工具还是用工具吧....
关于PowerVB的工具,我打了个包,包括EditTlb在内.还有本文的示例代码:
点击下载此文件
PS:
之前在原BLOG里也写了一篇,地址:
..2/blogview.asp?logID=329&cateID=2
现在这篇写得详细一些,感觉应该比原来那篇好懂点吧~~
想使用其事件就得引用此DLL.
如果既想动态调用DLL中的对象,又想使用对象的事件,可以试一下本文的方法(完整代码见后).
总体思路比较简单,如下:
一,利用EditTlb工具(Matthew Curland大师作品,后面有下载)打开目标DLL,直接另存为TLB.
然后再用EditTlb打开这个TLB,改一下GUID,类接口的名称,保存备用.
二,EXE工程里引用这个TLB,利用其中与DLL中对象一模一样的接口,写好事件相
关代码.
三,使用CreateObject创建对象.
如果DLL正确地注册了,那么就会成功,否则会失败.
其中EditTlb工具是重点,让本来需要用ODL语言生成TLB的过程成为过去....
在这种应用中,完全没必要折腾ODL语言,所以有工具还是用工具吧....
关于PowerVB的工具,我打了个包,包括EditTlb在内.还有本文的示例代码:

PS:
之前在原BLOG里也写了一篇,地址:
..2/blogview.asp?logID=329&cateID=2
现在这篇写得详细一些,感觉应该比原来那篇好懂点吧~~
评论: 0 | 引用: 0 | 查看次数: 1931