 |
VB有两种传递参数值的方法:ByRef表示传递的是参数的地址,ByVal表示传递的是参数的值。ByRef是VB默认的参数传递方式,如果指定传递的是参数的值要使用关键字ByVal。而如果传递的是参数的值,VB在大多数情况下会自动转换,及时参数声明的类型和实际参数的类型不同也问题不大。但是,如果采用ByRef,则要求参数声明的类型和实际参数的类型完全相同,否则VB就会报告错误。下面的语句会导致这个错误:
Dim MyVar, AnotherVar As Integer
MyVar = 3.1415
Call SomeSub((MyVar))
Sub SomeSub (MyNum As Integer)
MyNum = MyNum + MyNum
End Sub
由于是ByRef,所以MyVal应该为Integer类型,但是在声明时由于没有指定参数类型,VB默认MyVal的类型为Variant,这样参数类型就不一致了,所以导致这个错误。只需要将参数类型修改如下就可以了:
Dim MyVar As Integer, AnotherVar As Integer
相关问题:
QA000488 "在VB中如何传递指针给DLL"
此问题由李海回答。
附加关键字:编程, 源程序, programming, source code, Visual Basic, VB, 错误信息, error, error message, link, compile, runtime。
|