软件注册站
热情软件屋

 
编译错误:ByRef 参数类型不符是什么意思
编号: QA004872    
建立日期: 2004年8月30日 最后修改日期: 2004年8月30日
所属类别: Visual Basic - 错误信息
   
    操作系统: windows2000
    编程工具: vb6.0
    问题: 请问专家,编译错误:ByRef 参数类型不符是什么意思,该如何解决?谢谢。
    水平: 刚入门(tt)
   
    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

   
 
把这个问题推荐给朋友
   
 
   
您的意见类别
您的名字
您的电子邮件
您的建议(请尽可能详细)
 
 

版权所有 1997-2008 热情软件屋
如果您有任何建议和意见, 请给我发个电子邮件 askpro@china-askpro.com
Web Designed by ZebraStudio