- 注册时间
- 2011-3-10
- 最后登录
- 1970-1-1
该用户从未签到
|
【VB的函数毛病怎么解决】
base= &H12F058
basep = rmem(base)
basep = rmem(basep + &H20)
Text5.Text = basep
'这样就不可以了
Public Function rmem(ByVal addres As Long) As Long
ReadProcessMemory hProcess, addres, rmem, 4, 0&
CloseHandle hProcess
End Function
'这个是函数,我是这样理解的。他以值的方式传递rmem()里的的参数。当()里的参数需要再次调用这个函数的时候。就不能用了。
'我以以下方式可以正确得到答案
base= &H12F058
basep = rmem1(base)
basep = rmem2(basep + &H20)
Text5.Text = basep
'以上代码。分2次调用2个函数
'===================第1个函数
Public Function rmem1(ByVal addres As Long) As Long
ReadProcessMemory hProcess, addres, rmem1, 4, 0&
CloseHandle hProcess
End Function
'===================第2个函数
Public Function rmem2(ByVal addres As Long) As Long
ReadProcessMemory hProcess, addres, rmem2, 4, 0&
CloseHandle hProcess
End Function
'这样就可以使用了。他貌似是先执行了basep = rmem1(base)但是没有把值存在basep里
'而在第2次调用basep = rmem2(basep + &H20)。他又一次的调用了rmem1()
'请问是我理解错了。还是VB有这个毛病?
'我曾经设想。函数这样写
Public Function rmem(addres) As Long
ReadProcessMemory hProcess, addres, rmem, 4, 0&
CloseHandle hProcess
End Function
'使他不以数值方式传递参数。把整个表达式扔进来叫ReadProcessMemory去算。但是依然存在自己无法调用自己的毛病
我是想写成这样
base= &H12F058
basep = rmem(rmem(base) + &H20)
Text5.Text = basep |
|