在VB中执行过程或函数时,提示"ByRef参数类型不符"
分析问题主要由于对应参数的类型不符造成的。造成这种情况一般有几种情况:
1。传递参数未定义类型,如果参数在调用前未定义类型,系统自动将它定义为Variant类型,由于与过程或函数中的对就参数类型不相同,所以提示"ByRef参数类型不符"
2。传递参数类型已经定义,但由于定义方法不对,所以提示"ByRef参数类型不符"。具体情况如下:
当VB中如此定义变量时,将会出现以上错误信息的出现
Private Sub Command1_Click()
Dim i , j As Integer
i = 3
j = 4
Call get1(i, j)
Text1.Text = i
End Sub
Private Sub get1(ByRef para1 As Integer, para2 As Integer)
para1 = para1 + para2
End Sub
如果将 Dim i , j As Integer 改为
Dim i As Integer
Dim i As Integer
程序执行正常。也就是说,第一种方法的变量定义,只是对 J 做了定义,并未对前面的 I 进行定义
一般在过程和函数中定义参数时采用ByRef,则要求参数声明的类型和实际参数的类型完全相同,否则VB就会报告错误。
分享到:
相关推荐
VB参数传递(传值ByVal与传址ByRef)[整理].pdf
vb中定义如下: 类模块Class1中代码如下: Dim aa() As String Public Sub setName(ByRef str() As String) ...运行时怎么总是提示“类型不匹配,缺少数组或用户定义类型”啊?实在不知道错在哪里了??
用实际代码的形式阐述了ByVal和ByRef的区别以及形参和实参的区别。 源码在VB.net 2010下调试通过。 欢迎指正!
关于 byval 与 byref 的区别分析总结
VB API 编程声明函数时注意使用ByVal和ByRef
用代码的形式阐述了ByVal和ByRef的区别以及形参和实参的区别。源码在VB.net 2010下调试通过。 欢迎指正!
将微软官方的关于ByVal和ByRef的区别翻译了一下,含代码
Base64编码和解码库,支持API调用和COM调用,输入参数支持VB的字节数组Byte(),输出支持VB的字节数组Byte()和字符串String。编码速度大约为每秒钟256MB~380MB。 内附一个比较三方提供的比较经典的库VBVorLib,其...
VB参数混合使用的一个方法演示,附上相关的代码,演示了子过程运算前形参的值、子过程运算后形参的值、主程序调用前变量的值、主程序调用后变量的值,以下为完整的VB代码: Private Sub mix(ByVal x As Integer, ...
一直以来在 VB6 下,参数默认都是按照 ByRef 传送的,(即按地址传送) 而在 .Net(C#,VB.Net) 下, 参数默认是使用 ByVal (即按值传送) 传送的,一直没怎么注意。这些天在优化程序时发现 当传送 大变量时,使用默认...
所以声明API的时候一定要byval,大家知道空着不写就是默认byref ‘下面还有几处不该传址的参数,只要搞清楚API函数要的到底是什么值才可以确定到底传值还是传址,API浏览器仅能供参考,还是要仔细阅读MSDN MyStartAddr =...
Private Declare Sub forcx B Lib "dll.dll" Alias "_ FORCX @12" (ByRef a As integer, ByRef b As integer, ByRef c As integer) Sub callfor() Dim a as integer, b as integer ,c as integer B=1 : c=2 Call ...
对于“JavaScript 函数参数是传值(byVal)还是传址(byRef)”这个问题,普遍存在一个误区:number,string等“简单类型”是传值,Number, String, Object, Array等“复杂类型”是传址。这样不对吗?为什么会有这样的...
VB6常用方法汇编 基本语法 过程 Sub abc (i As Long ) 语句 End Sub 调用:abc ii 或者:call abc(ii) 如果要返回参数变化: Sub abcd ( ByRef i As Long ) 语句 End Sub 函数 Function ...
Using DIB Sections in VB An Easy to Use Class for manipulating DIBSections plus a blindingly quick technique for updating the bits <br> <br> <br> Updated! 17 February 1999 The...
VB字符串处理函数大全:mid(字符串,从第几个开始,长度) ByRef 在[字符串]中[从第几个开始]取出[长度个字符串]
传递使用频率较高函数的字符串参数 对齐升级提示对话框中的版本号 补充了一些注释 去掉了默认标签页 增加关闭其它页面的功能 将TabData?更名为Page 将LogClassInitialize?和LogClassTerminate?函数放入标准...
参数列表 类型 传递方式 参数说明 sStreamName String Byval 流文件名 4.3.2 GetNTFSStreamSize(ByVal sStreamName As String) As Long 获取指定数据流的大小,返回实际大小,执行失败返回-1 参数列表 类型 传递...
这是对之前的版本的升级,上一个版本在实际使用中存在一个bug,就是在低配置的电脑上运行的时候会出现溢出的问题,经过多次研究是由于在绘图函数里使用了byval而不是byref,产生过大的运算量而造成的,该版本修正了...