VBGood网站全文搜索 Google

搜索VBGood全站网页(全文搜索)

VB爱好者乐园(VBGood)

 找回密码
 立即注册
搜索
查看: 6804|回复: 11

VB变态优化之 跳出陷阱,还我自由

[复制链接]
 楼主| 发表于 2007-2-4 23:12:34 | 显示全部楼层 |阅读模式
当你的程序在陷入了调用的深渊~
当你想要立刻结束这次的调用!
而苦于不能连续性exit sub呢?
而不想用If 全局变量 then exit sub
那就试试vbaStrVarCopy 吧,哈哈哈……

Option Explicit
Private Declare Function vbaStrVarCopy Lib "msvbvm60.dll" Alias "__vbaStrVarCopy" (ByVal ptr As Long) As String

Private Sub Form_Click()
    Debug.Print "1"
    a
    Debug.Print "2"
End Sub

Private Sub a()
    Debug.Print "3"
    vbaStrVarCopy (StrPtr("我"))
    Debug.Print "4"
End Sub
发现什么?
立即窗口里,只打印出1,3
2和4呢?
我怎么没看见exit sub呢?
哈哈哈,神奇吧

(此代码今日刚试出来,有没什么后遗症,不知道……)

[ 本帖最后由 superzmy 于 2007-2-4 23:21 编辑 ]
发表于 2007-2-5 18:57:10 | 显示全部楼层
这个...有后遗症...
编译成exe后...
发生错误:
-----------------------------
|工程1                       X|
-----------------------------
|  ^   运行时错误'458';             |
| /!\                       |
| --- 变量使用了Visual Basic不支持的Automation类型|
|                           |
|          [ 确定 ]           |
-----------------------------
回复 支持 反对

使用道具 举报

发表于 2007-2-5 19:01:46 | 显示全部楼层
呵呵 看样子空欢喜了呢
回复 支持 反对

使用道具 举报

发表于 2007-2-5 19:06:06 | 显示全部楼层
同上
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-2-5 20:12:07 | 显示全部楼层
啊……
那就算了……我想删帖
回复 支持 反对

使用道具 举报

发表于 2007-2-5 21:38:56 | 显示全部楼层
有什么用呢?
回复 支持 反对

使用道具 举报

发表于 2007-2-5 21:49:21 | 显示全部楼层
如果成功了,这将会是我梦寐以求的代码!!!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-2-5 22:23:03 | 显示全部楼层
用汇编应该很简单,push一下就OK了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-2-5 22:27:21 | 显示全部楼层
和vbaStrVarCopy类似的API很多,你试试其他几个,说不定你的就OK了
回复 支持 反对

使用道具 举报

发表于 2008-4-9 12:25:12 | 显示全部楼层
原帖由 jay36 于 2007-2-5 19:01 发表
呵呵 看样子空欢喜了呢

也不用那么悲观,错误处理直接忽略458错误就可以了,呵呵,这种方法还是蛮强的,岂能错过?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

文字版|手机版|小黑屋|VBGood  

GMT+8, 2019-7-23 21:07

VB爱好者乐园(VBGood)
快速回复 返回顶部 返回列表