|
Func _MemoryRead($iv_Address, $ah_Handle, $sv_Type = 'dword')
If Not IsArray($ah_Handle) Then
SetError(1)
Return 0
EndIf
Local $v_Buffer = DllStructCreate($sv_Type)
If @Error Then
SetError(@Error + 1)
Return 0
EndIf
DllCall($ah_Handle[0], 'int', 'ReadProcessMemory', 'int', $ah_Handle[1], 'int', $iv_Address, 'ptr', DllStructGetPtr($v_Buffer), 'int', DllStructGetSize($v_Buffer), 'int', '')
If Not @Error Then
Local $v_Value = DllStructGetData($v_Buffer, 1)
Return $v_Value
Else
SetError(6)
Return 0
EndIf
EndFunc
上面调用DLL读取内存的模块.
我知道 "float" 是读浮点的参数.
在aotoit的帮助里我找到了 双浮点的参数是 "double"
float 32bit(4bytes) floating point
double 64bit(8bytes) floating point
但是带入后,float浮点读取没问题.
double双浮点却读不出正确的数值:
_MemoryRead(0x15AEFD24, $Handle,"double");$Handle是读取目标的内存进程
向高手请教一下,这是怎么回事呢?
应该怎样修改才能正确读出双浮点呢? |
|