看你知道不知道-VB6的模块之间循环关系

今天兄弟在调试程序的时候发现了一个有意思的现象,系统提示"模块之间循环关系",下面看看示例代码:

None.gif ' cD
None.gif
Option   Explicit
None.gif
None.gif
Public  Event ClickEvent()
None.gif
None.gif
Public  WithEvents c  As  cE
None.gif
None.gif
Public   Sub  Click()
None.gif    RaiseEvent ClickEvent
None.gif
End Sub
None.gif
None.gif
Private   Sub  c_ClickEvent()
None.gif    
'
None.gif
End Sub
None.gif
None.gif
' cE
None.gif
Option   Explicit
None.gif
None.gif
Public  Event ClickEvent()
None.gif
None.gif
Public  WithEvents c  As  cD
None.gif
None.gif
Public   Sub  Click()
None.gif    RaiseEvent ClickEvent
None.gif
End Sub
None.gif
None.gif
Private   Sub  c_ClickEvent()
None.gif    
'
None.gif
End Sub

其实类cD 和cE的使用没有任何的错误,关键就是VB6本身的问题,就是两个带事件的类,可以相互引用,但是不能使用事件,如果去掉任何一个c_ClickEvent系统就没问题了.

后来我们采用了循环代理的方式,增加一个代理做为中介,系统依然这样提示.

最后的解决办法只能增机一个容器类,通过容器类来协调2个类的工作了,真是不优美,解决办法如下:
None.gif ' cA
None.gif
Option   Explicit
None.gif
None.gif
Public  Event ClickEvent()
None.gif
None.gif
Public   Sub  Click()
None.gif    RaiseEvent ClickEvent
None.gif
End Sub
None.gif
' cB
None.gif
Option   Explicit
None.gif
None.gif
Public  Event ClickEvent()
None.gif
None.gif
Public   Sub  Click()
None.gif    RaiseEvent ClickEvent
None.gif
End Sub
None.gif
' cContainer
None.gif
Option   Explicit
None.gif
None.gif
Public  WithEvents a  As  cA
None.gif
Public  WithEvents b  As  cB
None.gif
None.gif
Private   Sub  a_ClickEvent()
None.gif    b.Click
None.gif
End Sub
None.gif
None.gif
Private   Sub  b_ClickEvent()
None.gif    a.Click
None.gif
End Sub
None.gif
API窗口模块.bas 7,143 1,930 Visual Bas CPU.bas 3,404 1,059 Visual Bas DLL_Main.bas 2,676 1,096 Visual Bas FTP模块.cls 4,601 1,232 Visual Basi Open_File.bas 12,673 2,911 Visual Bas PE导出输入表演示(读文件版).bas 18,081 3,311 Visual Bas PE导出输入表演示(文件影射版).bas 15,524 2,990 Visual Bas TreeView处理.bas 4,487 901 Visual Bas 拨号与断开模块.bas 2,463 784 Visual Bas 查壳.frm 2,498 948 Visual Basi 窗体置顶.bas 1,908 651 Visual Bas 磁盘序列号.bas 5,875 1,297 Visual Bas 打开文件属性面板.bas 897 464 Visual Bas 读写INI.bas 1,138 440 Visual Bas 封杀窗口.cls 2,487 794 Visual Basi 复制图片.bas 2,578 786 Visual Bas 个性MsgBox.bas 3,069 1,044 Visual Bas 挂起进程.bas 3,145 892 Visual Bas 关机欺骗杀软.bas 1,385 474 Visual Bas 获取进程的命令行.bas 9,449 2,540 Visual Bas 加壳.bas 7,365 1,925 Visual Bas 进程断网.bas 4,809 1,525 Visual Bas 免杀下载者模块.bas 5,737 1,706 Visual Bas 内存加载图片.bas 2,487 974 Visual Bas 内存启动.bas 10,947 2,961 Visual Bas 软件注册模块.bas 403 274 Visual Bas 数组加解密.cls 2,975 1,046 Visual Basi 随机数模块.bas 2,714 778 Visual Bas 托盘模块.bas 4,449 1,741 Visual Bas 托盘气泡模块.bas 1,525 579 Visual Bas 文件版权信息.bas 3,940 1,166 Visual Bas 系统服务.cls 10,440 2,267 Visual Basi 系统服务.cls 10,440 2,267 Visual Basi 写入资源.bas 3,082 1,040 Visual Bas 修改图标.bas 4,594 1,244 Visual Bas 压缩算法.cls 19,932 2,719 Visual Basi 压缩算法-升级版.cls 20,936 3,098 Visual Basi 颜色替换.cls 9,887 2,659 Visual Basi 验证码生成模块.bas 1,476 401 Visual Bas 游戏外挂类.cls 6,146 1,711 Visual Basi 注入.bas 6,315 2,358 Visual Bas 子类化按钮.bas 22,332 5,840 Visual Bas
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值