Перейти к содержанию

Помоги с отображение значений


Рекомендуемые сообщения

NullAlex, оно не будет через ReadProcessMemory читать сразу Double, оно будет читать байты. Байты нужно преобразовать в Double после прочтения, а уже Double - в текстовую строку.

Ну, для того и написано SizeOf(), но в новых Delphi уже есть возможность получения Double значения в буфер, автору темы просто осталось это применить на практике, немного почитав про свою версию IDE.
Ссылка на комментарий
Поделиться на другие сайты

Я вообще нифига не понимаю, выводит тип 4 байта, что делать - хз
вот функция:

 

function Debugger(GameHandle: THandle; const Address: Pointer): DWORD;
var
 ReadValue: SIZE_T;
 ViewValue: DWORD;
begin
 ReadProcessMemory(GameHandle, Address, @ViewValue, SizeOf(ViewValue), ReadValue);
 Result := ViewValue;
end;
 
Вот как формаляю код в прогрмме
var
  Address: Double;
begin
  GHandle := OpenProcess($001FFFFF, False, pID);
  Address := BlackScanner.Debugger(GHandle, Pointer($003E9468));
  SpinEdit1.Text := FloatToStr(Address);

выводит поганых 4 байта
 
Ссылка на комментарий
Поделиться на другие сайты

function ReadFloat(Address: Cardinal): Single;varReaden: Cardinal;Data: Double;begin  ReadProcessMemory(PidHandle, Pointer(Address), @Data, SizeOf(Data), Readen);  result:=Data;end;

Вывод : Edit1.Text := FloatToStr(readFloat(Adress));

 

Во! у тебя единственный норм вариант, и то:

есть погрешность

--

 Оригинал:                 1.62500044514339

в едит выводит так: 1,62500047683716

============

ВСЁ, спасибо всем, и владу, извините те, кому вынес мозг сегодня, прошу удалить тему

Изменено пользователем ∟DarkPan
Ссылка на комментарий
Поделиться на другие сайты

Гость
Эта тема закрыта для публикации ответов.
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, Вы автоматически соглашаетесь соблюдать наши Условия использования.