Форум: "Основная";
Текущий архив: 2004.09.12;
Скачать: [xml.tar.bz2];
Вниз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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.049 c