7,765
社区成员
发帖
与我相关
我的任务
分享
Option Explicit
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (ByRef Destination As Any, ByRef Source As Any, Optional ByVal Length As Long = 4)
Private Sub Form_Load()
Dim a(10) As Byte, i, b As Integer, c As Long
For i = 0 To 10
a(i) = i
Next i
Debug.Print Hex(a(2)), Hex(a(1)) '源
CopyMemory b, a(1), 2& '内存复制
Debug.Print Hex(b) '内存复制后
Debug.Print Hex(a(4)), Hex(a(3)), Hex(a(2)), Hex(a(1)) '源
CopyMemory c, a(1), 4& '内存复制
Debug.Print Hex(c) '内存复制后
Debug.Print Hex(a(2)), Hex(a(1)) '源
CopyMemory b, (a(1)), 2& '内存复制,多用了括号
Debug.Print Hex(b) '内存复制后
Debug.Print Hex(a(4)), Hex(a(3)), Hex(a(2)), Hex(a(1)) '源
CopyMemory c, (a(1)), 4& '内存复制,多用了括号
Debug.Print Hex(c) '内存复制后
End Sub
2 1'复制前
201'复制后
4 3 2 1'复制前
4030201'复制后
2 1'复制前
1'复制后
4 3 2 1'复制前
1'复制后
Option Explicit
Dim x As Long
Function AAA(ByRef xx As Long, ByVal yy As Long) As Long
Debug.Print "直接使用", xx, yy
Debug.Print "参数地址", VarPtr(xx), VarPtr(yy)
End Function
Private Sub Form_Load()
x = 1
Debug.Print "全局变量,地址,值", VarPtr(x), x
Debug.Print "没有用()"
AAA x, x
Debug.Print "用()"
AAA (x), (x)
End Sub
全局变量,地址,值 1562396 1
没有用()
直接使用 1 1
参数地址 1562396 1308832
用()
直接使用 1 1
参数地址 1308844 1308832
所以:
copymoney c,&H9999,4&
就等于:
dim lTmp as long '临时变量
copymoney c,lTmp,4&