Показать сообщение отдельно
Старый 25.01.2011, 21:56   #58
Рыцарь
 
Аватар для alexteam
 
Регистрация: 07.03.2009
Сообщений: 9,139
Сказал Спасибо: 70
Имеет 2,820 спасибок в 1,735 сообщенях
alexteam на пути к лучшему
По умолчанию

delphi Код:
program Project2; {$APPTYPE CONSOLE} type   TMyClass = class   public     X: integer;     Y: integer;     Procedure ApplicationProcedure;   end; { TMyClass } procedure TMyClass.ApplicationProcedure; begin   Writeln(x,' ',y); end; var   MyObj : TMyClass;   Stored, OffsetX, OffsetY : Pointer;   PIntX, PIntY : ^integer; begin   //приложение   MyObj := TMyClass.Create;   MyObj.X := 100;   MyObj.Y := 200;   MyObj.ApplicationProcedure;   //а это типо у нас   Stored := MyObj; //прочитать значение с off_40A798   OffsetX := @TMyClass(nil).x; //т.к. я в этом же приложении то могу сделать воттак.   OffsetY := @TMyClass(nil).y; //на самом деле у нас константы - смещения   PintX := pointer(integer(Stored) + integer(OffsetX)); //базовый адрес + смещение = адрес того где читать\менять   PintY := pointer(integer(Stored) + integer(OffsetY));   PintX^ := 111; //меняем   PintY^ := 222;   //опять приложение   MyObj.ApplicationProcedure;   readln; end.
__________________
L2Ext - project closed.
alexteam вне форума   Ответить с цитированием
За это сообщение alexteam нажился спасибкой от: