如何在vba中用VarPtr获取变量的内存地址?

对于VB 编程人员来说,一般情况下不需要去关心变量的底层信息,如变量的内存地址、变量的存储方式等。

但是在调用某些API函数时,需要传递变量的内存地址作为参数,这时候可以用VarPtr函数来获取变量的内存地址。

用VarPtr函数可以获取单个变量的内存地址,或者某个数组元素的内存地址。

它的用法如下:

Sub QQ1722187970()
 Dim i As Long
 i = 1
 '获取变量i的内存地址
 Debug.Print VarPtr(i)
 Dim arr() As Byte
 ReDim arr(1)
 arr(0) = 1
 arr(1) = 2
 '获取第一个数组元素的内存地址
 Debug.Print VarPtr(arr(0))
End Sub

VarPtr 函数是内置函数,但是并不会出现在vb 的官方文档中,微软有意隐藏起来了,但是可以像其它所有vb内置函数一样使用,它的返回值就是变量的存储字节的起始内存地址。

       

发表评论