gaoyuan22 发表于 2009-7-31 05:25:51

关于读内存的一点问题.双浮点.

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, 'int', 'ReadProcessMemory', 'int', $ah_Handle, '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是读取目标的内存进程
向高手请教一下,这是怎么回事呢?
应该怎样修改才能正确读出双浮点呢?

gaoyuan22 发表于 2009-7-31 08:10:46

刚才我用 double型读了另一个 双精度浮点数,结果又读出的结果又正常.
真是奇怪...
页: [1]
查看完整版本: 关于读内存的一点问题.双浮点.