有些怪异的现象,请高人指点一下。
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" _(Destination As Any, Source As Any, ByVal Length As Long)
Private Sub Command1_Click()
Dim aa As String
Dim Cc(100) As Byte
Dim adr As Long
aa = "1234567890"
adr = StrPtr(aa)
CopyMemory ByVal adr, Cc(0), 8
MsgBox aa
End Sub
Private Sub Command2_Click()
Dim aa As String * 10
Dim Cc(100) As Byte
Dim adr As Long
aa = "1234567890"
adr = StrPtr(aa)
CopyMemory ByVal adr, Cc(0), 8
MsgBox aa
End Sub
第一种情况aa的被修改都成为0
第二种则aa还是"1234567890"没有被修改
而两种情况的区别就是字符串定义时不同,这是什么原因?