原理:
vb里面,字符串变量本身就是指针的指针,存放的是指向实际字符串的指针的地址,通过改变这个指针,不必移动实际字符串内容,就可以达到交换两个字符串的目的
程序:
Option explicit
private sub copymemory lib "kernel32" Alias "RtlMoveMemory"(byval Dest as long,byval Source as long,byval Len as long)
sub Main()
dim StrA as string
dim StrB as string
dim P as long
StrA="abcd"
StrB="efghjik"
copymemory(varptr(p),varptr(StrA),4)
copymemory(varptr(StrA),varptr(StrB),4)
copymemory(varptr(StrB),varptr(p),4)
end sub
运行后,StrA的内容变为"efghjik"
StrB的内容变为"abcd"
如果两个字符串很小的话,就不必使用这个方法,调用API也是很慢的,如果两个字符串很大的话,这样的优势就很明显了!
程序:
Option explicit
private sub copymemory lib "kernel32" Alias "RtlMoveMemory"(byval Dest as long,byval Source as long,byval Len as long)
sub Main()
dim StrA as string
dim StrB as string
dim P as long
StrA="abcd"
StrB="efghjik"
copymemory(varptr(p),varptr(StrA),4)
copymemory(varptr(StrA),varptr(StrB),4)
copymemory(varptr(StrB),varptr(p),4)
end sub
运行后,StrA的内容变为"efghjik"
StrB的内容变为"abcd"
如果两个字符串很小的话,就不必使用这个方法,调用API也是很慢的,如果两个字符串很大的话,这样的优势就很明显了!