请问,在什么情况下要用byVal,在什么情况下用byRef, byVal是值传,就是实参接收的是一个数值.对这个参数的修改无效不能返回值.byRef是址传,就是实参接收的是一个地址.对这个参数的修改有效可以返回修改后的值. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 在VB中可以不考虑这两种差别! 在C语言和其它需大量使用指针的语言中才要特别注意!!! VB可以使用指针,只不过微软认为很危险,就不再MSDN中说明那些函数。取得函数指针:AddressOf 函数名取得对象指针:ObjPtr(对象)取得字符串指针:StrPtr取得其它类型的指针:VarPtr 同意Eastunfail(东方不败) VB只是不能显式声明指针而不是不使用指针,事实上在很多时候必须使用指针传递变量,也就是使用ByRef方式传递参数。例如要获得修改后的实参值;传递对象参数、数组参数等都必须用ByRef。to:wangzepeng 你可以自己写一些过程,分别使用ByVal和ByRef传递参数,观察一下返回值的变化,可以明白两者之间的区别。 有时用函数时程序提示出错然后加一个byval就好了,为什么? 非数值型变量都要用byref如TypeObjectControl 另外Byval 还会在调用时用。即当你将指针存入Long 变量中并传给指针参数的API 函数时须用Byval如:CopyMemory ByVal StrPtr(LPSTRtoBSTR), ByVal lpsz, cChars 局域网内文件复制 一个小问题^^^^^ vb+access中如何删除一个表中重复项的问题 急 在线等 送分题:如何设置listview的第一列为check(就是多选框) 关于aoddc与datagrid 如何让一个PICTURE控件的大小随着我图片大小的变化而变化 高手请进,困扰我公司程序员几个月的问题!!! 我发现了:关于vb中picturebox控件的最大漏洞。 下面的C语言程序转为VB该怎么写啊? 我想知道如何判断SQL 版本? 自定义资源如何使用? 《Call一个自定义函数后有没有办法不等它执行完就执行下面的语句?》
在C语言和其它需大量使用指针的语言中才要特别注意!!!
取得函数指针:AddressOf 函数名
取得对象指针:ObjPtr(对象)
取得字符串指针:StrPtr
取得其它类型的指针:VarPtr
VB只是不能显式声明指针而不是不使用指针,事实上在很多时候必须使用指针传递变量,也就是使用ByRef方式传递参数。例如要获得修改后的实参值;传递对象参数、数组参数等都必须用ByRef。
to:wangzepeng 你可以自己写一些过程,分别使用ByVal和ByRef传递参数,观察一下返回值的变化,可以明白两者之间的区别。
都要用
byref
如
Type
Object
Control
即当你将指针存入Long 变量中
并传给指针参数的API 函数时须用Byval
如:
CopyMemory ByVal StrPtr(LPSTRtoBSTR), ByVal lpsz, cChars