对于申明为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是什么含义"
此问题由李海回答。
| |
|
|
| |
|
|