Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.09.12;
Скачать: CL | DM;

Вниз

VMT   Найти похожие ветки 

 
nomshar   (2004-08-26 12:26) [0]

Слышал, что методы класса можно вызывать на основе смещения по адресу в таблице виртуальных методов. Господа, подскажите, как это сделать. Либо, где начать копать.


 
default ©   (2004-08-26 12:28) [1]

в окне CPU посмотреть...


 
Skier ©   (2004-08-26 12:29) [2]

>nomshar   (26.08.04 12:26)  
А зачем сие ?


 
Семен Сорокин ©   (2004-08-26 12:41) [3]

http://www.delphimaster.ru/articles/callprivate/index.html


 
Анонимщик ©   (2004-08-26 12:41) [4]

nomshar

Хотя все господа в Париже, все-таки отвечу.

var
 pNew: Pointer;
begin
 with ClassInfo_SG do
 begin
   Cells[0, 0] := "ЭЛЕМЕНТ";
   Cells[1, 0] := "СМЕЩЕНИЕ";
   Cells[2, 0] := "ЗНАЧЕНИЕ";
   Cells[0, 1]  := "УКАЗАТЕЛЬ НА ТАБЛИЦУ ВИРТУАЛЬНЫХ МЕТОДОВ";
   Cells[0, 2]  := "УКАЗАТЕЛЬ НА ТАБЛИЦУ ИНТЕРФЕЙСОВ";
   Cells[0, 3]  := "УКАЗАТЕЛЬ НА ТАБЛИЦУ АВТОМАТИЗАЦИИ";
   Cells[0, 4]  := "УКАЗАТЕЛЬ НА ТАБЛИЦУ ИНИЦИАЛИЗАЦИИ ЭКЗЕМПЛЯРОВ";
   Cells[0, 5]  := "УКАЗАТЕЛЬ НА ТАБЛИЦУ ТИПОВ ИНФОРМАЦИИ";
   Cells[0, 6]  := "УКАЗАТЕЛЬ НА ТАБЛИЦУ ОПРЕДЕЛЕНИЙ ПОЛЕЙ";
   Cells[0, 7]  := "УКАЗАТЕЛЬ НА ТАБЛИЦУ ОПРЕДЕЛЕНИЙ МЕТОДОВ";
   Cells[0, 8]  := "УКАЗАТЕЛЬ НА ТАБЛИЦУ ДИНАМИЧЕСКИХ МЕТОДОВ";
   Cells[0, 9]  := "УКАЗАТЕЛЬ НА SHORTSTRING, СОДЕРЖАЩУЮ ИМЯ КЛАССА";
   Cells[0, 10] := "РАЗМЕР ЭКЗЕМПЛЯРА В БАЙТАХ";
   Cells[0, 11] := "УКАЗАТЕЛЬ НА УКАЗАТЕЛЬ КЛАССА-ПРАРОДИТЕЛЯ";
   Cells[0, 12] := "УКАЗАТЕЛЬ НА ТОЧКУ ВХОДА МЕТОДА SafecallException";
   Cells[0, 13] := "УКАЗАТЕЛЬ НА ТОЧКУ ВХОДА МЕТОДА AfterConstruction";
   Cells[0, 14] := "УКАЗАТЕЛЬ НА ТОЧКУ ВХОДА МЕТОДА BeforeDestruction";
   Cells[0, 15] := "УКАЗАТЕЛЬ НА ТОЧКУ ВХОДА МЕТОДА Dispatch";
   Cells[0, 16] := "УКАЗАТЕЛЬ НА ТОЧКУ ВХОДА МЕТОДА DefaultHandler";
   Cells[0, 17] := "УКАЗАТЕЛЬ НА ТОЧКУ ВХОДА МЕТОДА NewInstance";
   Cells[0, 18] := "УКАЗАТЕЛЬ НА ТОЧКУ ВХОДА МЕТОДА FreeInstance";
   Cells[0, 19] := "УКАЗАТЕЛЬ НА ТОЧКУ ВХОДА МЕТОДА Destroy";
 end;

 basePointer := TButton; // или, например, Button1
 for count := 0 to 19 do
 begin
  pNew := Pointer(Integer(basePointer) - (76 - 4*count));
  ClassInfo_SG.Cells[2, 1 + count] := IntToStr(Integer(pNew^));
 end;

 дальше идут точки входа в user-define функции



Страницы: 1 вся ветка

Текущий архив: 2004.09.12;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.022 c
14-1093317713
SPeller
2004-08-24 07:21
2004.09.12
Отошлем спамерам спам :)


1-1093707101
Lord de Mon
2004-08-28 19:31
2004.09.12
Как извльчь настройки прокси с IE...


3-1092725944
Dmitriy O.
2004-08-17 10:59
2004.09.12
Автоинкременентный генератор IB


6-1087974793
ИМХО
2004-06-23 11:13
2004.09.12
Спецам по TWebBrowser у


14-1093516698
Zn
2004-08-26 14:38
2004.09.12
Кто что-нибудь слышал о Gallileo?