热情软件屋

 

对于申明为Any型的变量,如果赋予0&的实参值是什么意思


编号:QA003813
建立日期: 2001年1月28日 最后修改日期:2001年1月28日
所属类别:

晓夏:
    操作系统: NT4.0
    编程工具: VB6.0
    问题: 请问在VB中在进行API函数调用时,对于申明为Any型的变量,如果赋予0&的实参值是什么意思,另外"&"表示什么意思?谢谢!
    水平: 刚入门

回答:

    如果你使用过VC++或Delphi,As Any的含义就是强制类型转换,也就是说VB不再检查类型是否匹配,而由你来保证参数类型十正确的。例如SendMessage函数:
    Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
    它的最后一个参数就是这样的,这个参数可能是数字,也可能是字符串,或者其他类型,这样定义使用起来比较灵活。API中某些函数规定As Any所定义的参数为NULL时会有特殊含义,不为NULL时是另一种结果。如果不使用As Any,而使用As Long,然后赋0&,是否可以达到同样的目的吗?答案是不一样的,如果定义为As Any,则VB会把数字0传递给这个函数,而定义为As Long,则VB会把0保存在一个地点,然后把这个地点的地址传递给函数。
    
    相关问题:
    QA000998 "API定义中的&H是什么含义"

此问题由李海回答。

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

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