Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Подмена protected метода


Hooch ©   (2002-09-30 17:03:00) 

День добрый !

Господа, можно ли каким нибудь образом переопределить protected метод объекта, не создавая класс на его основе и не трогая сам класс ?


Le Taon   (2002-09-30 18:22:00) [1]

Ну, можно, наверное, влезть в код метода, заменить первые несколько байт и сделать джамп в свой метод.

Но написать новый класс гораздо проще. И правильнее.


Digitman   (2002-09-30 18:21:00) [2]

>Игорь Шевченко

Да это понятно) ... Но мы ж тут вроде бы как извращаемся))


Игорь Шевченко   (2002-09-30 18:17:00) [3]

Digitman © (30.09.02 18:12)

Проще наследника сделать :-)

С уважением,


Digitman   (2002-09-30 18:12:00) [4]

>Игорь Шевченко

А, ну да ... Ты прав - я это почему-то подразумевал как дифолт-условие)... Т.е. при таких вот условиях можно и поковыряться, иначе - не стоит даже напрягаться)


Игорь Шевченко   (2002-09-30 17:52:00) [5]

Digitman © (30.09.02 17:48)

Да некуда там писать...Это же обычный вызов функции, если он не виртуальный :-)


Digitman   (2002-09-30 17:48:00) [6]

Ну отчего же ? Если защищенный метод, к примеру, статический, достаточно в design-time расчитать (если есть исходники) смещение целевого поля (содержащего адрес метода - он един для всех экземпляров класса) и в run-time записать по адресу "адреса экземпляра + смещение поля" адрес иного метода. Лишь бы соглашения о передаче параметров/ возврате результата были соблюдены и корректны в конечном итоге


Hooch   (2002-09-30 17:38:00) [7]

Жаль...очень жаль :-( ну да ладно, кому сейчас легко ? :-)


Hooch   (2002-09-30 17:25:00) [8]

это то я понимаю, просто не хочется из-за 2 сток кода новый класс городить и во всех формах менять :-)


Игорь Шевченко   (2002-09-30 17:25:00) [9]

Hooch © (30.09.02 17:03)

Никак.


qube   (2002-09-30 17:16:00) [10]

Но protected методы затем и делаются защищенными, чтобы их при желании можно было переопределить нормальным наследованием.


qube   (2002-09-30 17:06:00) [11]

Мне кажется, только каким-то ужасным хирургическим вмешательством в VMT.


Наверх

Титульная страница Поиск, карта сайта Написать письмо