以前一直没注意vb参数的调用!!大家猜猜下面代码的结果

twohorses 2015-01-26 01:16:07
Private Sub Form_Load()
Dim a As Integer
Dim b As Integer
Dim c As Integer
a = 10
b = 10
c = 10

bb (a)
bb b
Call bb(c)

MsgBox a
MsgBox b
MsgBox c

End Sub

Private Sub bb(b1 As Integer)
b1 = b1 + 1
End Sub


有什么区别?
...全文
244 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2015-01-29
  • 打赏
  • 举报
回复
4楼是达人。
三楼の郎 2015-01-26
  • 打赏
  • 举报
回复
Private Sub bb(b1 As Integer) b1 = b1 + 1 End Sub 等同于 Private Sub bb(byref b1 As Integer) b1 = b1 + 1 End Sub byref传地址、byval传值 bb b Call bb(c) 传递的是变量b和c的地址,所以b1变化时,b、c也会变 bb(a) 传递的是(a)运算结果的地址,不是变量a的地址,所以b1变化时a不变
Tiger_Zhao 2015-01-26
  • 打赏
  • 举报
回复
正确的方式看帮助。
疑似错误的语句,详细描述完全可以编一本VB大全之类的书骗钱了。
twohorses 2015-01-26
  • 打赏
  • 举报
回复
引用 1 楼 Tiger_Zhao 的回复:
三个调用bb过程的语句: 语句二和语句三的写法都可以。所以显示11。 语句一的括号是运算符而不是过程后的括号,表达式(a)的结果调用过程,bb内更改的是这个结果的临时变量,和变量a无关。显示的还是10。
以前没注意过这个,(a)的括号是运算符,还真不知道,帮助文档上有这方面的解释吗?
Tiger_Zhao 2015-01-26
  • 打赏
  • 举报
回复
三个调用bb过程的语句:
语句二和语句三的写法都可以。所以显示11。
语句一的括号是运算符而不是过程后的括号,表达式(a)的结果调用过程,bb内更改的是这个结果的临时变量,和变量a无关。显示的还是10。
DLL函数查看器V3.5 (2012.03.16) =========================== *修复拖放/CTRL+C/"输出文件"空内容的问题 *修复无法复制UNICODE函数声明问题 *新增选项设置中可选复制函数声明是否"公开" *新增检索数据库功能(数据库已知函数统一查询) DLL函数查看器V3.4 (2011.09.11) =========================== *修复部分EXE文件导入表函数反汇编无识别的问题 *修复"总在最前"时"选项设置"窗口无法显示的问题 *修复数据处理等待画面引起的程序意外退出的问题 DLL函数查看器V3.3 (2011.08.28) =========================== *修复插件无法正常使用的问题 *修复设置文字焦点颜色无效的问题 *新增添加到系统右键菜单支持 *新增查找功能 DLL函数查看器V3.2 (2011.07.20) =========================== *修正对某些程序数据分析可能引起的程序崩溃 *修正对某些加壳程序反汇编可能引起的程序崩溃问题 *优化了反汇编代码并修复1处错误 *新增系统菜单条中"选项设置"项 *新增系统菜单条中"总在最前"项 *新增插件支持 DLL函数查看器V3.1 (2011.06.28) =========================== *修正了PE分析的文件时间计算错误 *修正了未文档化函数无法输出到文件的错误 *修正了反汇编的几处函数名称错误 *修正了各种系统下无法启动等其他多处问题 *修改了可以同时启动多个副本 *修改了多选情况可以复制所选的全部函数声明 *修改了反汇编跳转后回退到上次跳转处 *新增反汇编是否"到首返回"选项(或按"MaxLine") DLL函数查看器V3.0 (2011.05.18) =========================== * 修正了引入函数名显示不全的问题 * 修正了未公开函数名的函数序数计算错误 * 修正了未公开函数名的函数地址错误 * 修改导出函数地址为"真实地址" * 修改函数序数为"真实序数" * 新增命令行参数支持 * 新增列表排序功能 * 新增列表任意项目复制 * 新增列表输出文件与拖放输出 * 新增列表键入/粘帖函数名行定位 * 新增stdcall约定函数猜测参数个数 * 新增反汇编功能 * 新增对已知函数参数查看及中文解释 * 新增对函数的易语言和VB的函数及结构声明 * 新增查壳功能 * 新增查看PE文件头信息 * 美化窗口界面等 感谢使用山寨版DLL函数查看器,遇到问题请发送邮件 infopet@qq.com 因为以前使用 DLL函数查看器2.0 遇到很多功能欠缺,使用起来会有很多的不方便, 所以本人给进行了很多加强,但是依然可以保持使用 DLL函数查看器v2.0 的使用习惯. 嘿嘿!! 您觉得这个山寨版怎么样!? 注: 1.将本程序快捷方式放入系统 "SendTo" 目录后,就可以右键文件"发送到"实现文件快速查看. 2.按粘帖键(Ctrl+V)将剪辑板中字符串在列表中匹配查找. 3.关于参数量的问题,由于猜解方法过于简单对于部分函数未从当前函数返回,而是"JMP"到别的函数 所以猜解可能会有错误,需要结合已知函数库或反汇编查看,另此方法对于cdecl调用函数无效. 4.关于反汇编视图的"到首返回"如果勾选即表示仅反汇编到头一个RETN为止,否者将按照"DisAsm_MaxLine" 所指定的行数.生效方法参见说明细则12~13. 5.将PEID userdb.txt 放置到程序目录下可以实现查壳. 6.如果将易语言API伴侣DATA下文件复制到本目录,可获得已知函数信息.这首先要感谢API伴侣的作者. 7.在目录下建立 "ViewApi.cfg" ,设置信息将写入配置文件可方便放入优盘等移动存储器中使用. 程序启动时会优先读取配置文件,如果文件不纯在则会访问注册表. 8.如果你觉得这个美化窗口很浪费资源,可以打开注册表修改如下项值即可关闭 [HKEY_CURRENT_USER\Software\ViewApiList] "UI"=dword:00000000 9.如果你觉得反汇编影响了效率,可以打开注册表修改如下项值即可关闭 [HKEY_CURRENT_USER\Software\ViewApiList] "DisAsm"=dword:00000000 10.如果想关闭查壳功能可以删除userdb.txt或注册表如下设置 [HKEY_CURRENT_USER\Software\ViewApiList] "CheckShell"=dword:00000000 11.在线查询接口可在注册表如下位置修改,{searchTerms}为保留关键字被作为替换函数名. [HKEY_CURRENT_USER\Software\ViewApiList] "WebSearch"="http://www.baidu.com/s?wd={searchTerms}&ie=utf-8" 12.是否仅反汇编到头一个返回,1.表示是,0表示否. [HKEY_CURRENT_USER\Software\ViewApiList] "DisAsm_Retn"=dword:00000001 13.反汇编最大行数,即表示当前地址向后的长度,与函数实际长度无关.是否生效需要根据"DisAsm_Retn"设置. [HKEY_CURRENT_USER\Software\ViewApiList] "DisAsm_MaxLine"=dword:000003e8 键盘快捷键说明: TAB(SHIFT+TAB) -- 视图焦点切换 CTRL+S -- 视图切换 CTRL+F -- 文字搜索 F3 -- 搜索下一个 CTRL+A -- 项目全选 CTRL+C -- 复制选中项目函数名称/汇编代码 CTRL+V -- 将剪辑板中的字符在视图中匹配搜索 ALT+← -- 反汇编视图上一次跳转的后退 ALT+→ -- ... 前进 Application -- 弹出右键菜单(右WIN键和右CTRL键中间的那个键)

7,785

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧