VB指针教程1
工程完整代码:
Demo1.rar
(2.11 KB)
程序代码:
'先理解下变量的地址与指向这个地址的值。xx省xx市xx街xx号就是一个地址, '指向这个地址的值就是这个地址就有什么。比如这个地址是张三家的地址, '张三的家有什么呢?这个有什么就是这个地址所指向的值。 'VB没用操作指针的语言特性,因此需要通过WinAPI函数来进行操作,下面我们将 '演示一个非常简单的指针操作,让大家在VB使用指针有个基本的了解。 'CopyMemory函数参数 'CopyMemory是WinAPI函数,为了演示我把其修改成了两个版本, '版本1:CopyMemory1 '版本2:CopyMemory2 '版本1Destination及Source的参数是按照引用传递的(ByRef) '版本2Destination及Source的参数是按照值传递的(ByVal) '参数说明: 'Destination '要复制内存块的目的地址? 'Source '要复制内存块的源地址? 'Length '指定要复制内存块的大小,单位为字节 '返回值 '该函数为VOID型,没有返回值。 Private Declare Sub CopyMemory1 Lib "kernel32" Alias "RtlMoveMemory" _ (ByRef Destination As Any, ByRef Source As Any, ByVal Length As Long) Private Declare Sub CopyMemory2 Lib "kernel32" Alias "RtlMoveMemory" _ (ByVal Destination As Any, ByVal Source As Any, ByVal Length As Long) '在Basic语言演变成QBasic,然后到Visual Basic之前,VarPtr函数就已经存在了。 '开始,这个函数存在于VB运行库1.0版中。VarPtr函数的作用获取变量的地址 Private Sub Form_Click() Dim long1 As Long Dim long2 As Long long1 = 10 '版本1的CopyMemory CopyMemory1 long2, long1, 4 MsgBox long2 '版本2的CopyMemory Dim long3 As Long CopyMemory2 VarPtr(long3), VarPtr(long1), 4 MsgBox long3 End Sub
[ 本帖最后由 ioriliao 于 2010-5-2 13:56 编辑 ]