1 (изменено: alexii, 2011-07-01 08:43:21)

Тема: AHK: Float значение. чтение из памяти

Есть код, проблема в том что мне требуется получить Float из определённого адреса.
Как требуется изменить мой код чтобы получить именно Float а не 4 байтное число?

Тагже требуется пример и записи float в память процесса.

Process, Exist, %ProcessName%
PID := ErrorLevel
Size = 4
VarSetCapacity(Buf,Size, 0)
PROCESS_VM_READ = 0x10

base =0x006601a0
ssss =0x58

hProcess := DllCall("OpenProcess", UInt, PROCESS_VM_READ
                                 , Int, False
                                 , UInt, PID)

Ret := DllCall("ReadProcessMemory", UInt, hProcess
                                  , UInt, base
                                  , UInt, &Buf
                                  , UInt, Size
                                  , UInt, 0)

pointer := NumGet(Buf)


Ret := DllCall("ReadProcessMemory", UInt, hProcess
                                  , UInt, pointer + ssss
                                  , UInt, &Buf
                                  , UInt, Size
                                  , UInt, 0)
    aaaaaa := NumGet(Buf)
    
MsgBox %aaaaaa% ;~ тут нужно вывести float значение

2

Re: AHK: Float значение. чтение из памяти

Float тоже 4-байтное. Может, Вам double нужен? Тогда так:

Size = 8
...
aaaaaa := NumGet(Buf, 0, "Double")

3 (изменено: winstan, 2011-07-01 13:21:18)

Re: AHK: Float значение. чтение из памяти

YMP пишет:

Float тоже 4-байтное. Может, Вам double нужен? Тогда так:

Size = 8
...
aaaaaa := NumGet(Buf, 0, "Double")

написал вместо "Double" , "Float" и помогло:)

http://s61.radikal.ru/i171/1107/ca/89bbdcfe8580.jpg