vmtSelfPtr

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

vmtSelfPtr

Сообщение hinst » 16.08.2009 22:00:27

Превед всм. Подскажите пожалуйста, где в Lazarus vmtSelfPtr (если такой есть вообще). Оч. спичит :roll:
Спасибо за внимание :roll: :roll: :roll:
Аватара пользователя
hinst
энтузиаст
 
Сообщения: 781
Зарегистрирован: 12.04.2008 18:32:38

Re: vmtSelfPtr

Сообщение Vadim » 17.08.2009 04:50:28

hinst
1. Что за термин "превед"? Это Вы на каком языке тут всех обругали?
2. Что за термин "спичит"?
Без этих разъяснений понять, что Вы от нас хотите, будет совершенно невозможно.
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: vmtSelfPtr

Сообщение hinst » 17.08.2009 20:45:11

превед = привет
всм = всем
Оч. спичит = очень надобно
Аватара пользователя
hinst
энтузиаст
 
Сообщения: 781
Зарегистрирован: 12.04.2008 18:32:38

Re: vmtSelfPtr

Сообщение Sergei I. Gorelkin » 17.08.2009 22:35:42

В Дельфи результат, возвращаемый ClassType, указывает "в середину" VMT, на первый виртуальный метод собственно объекта. Чтобы получить указатель на начало VMT, к нему нужно прибавить константу vmtSelfPtr (равную -76 в Delphi 7).
В FPC ClassType указывает на начало VMT, поэтому нужды в подобной константе нет. Чтобы получить указатель на первый виртуальный метод, можно прибавлять sizeof(TVmt).
Аватара пользователя
Sergei I. Gorelkin
энтузиаст
 
Сообщения: 1405
Зарегистрирован: 24.07.2005 14:40:41
Откуда: Зеленоград

Re: vmtSelfPtr

Сообщение hinst » 18.08.2009 10:22:13

то есть, если написать
const vmtSelfPtr = sizeof(TVmt);
то компонент, бывший для дельфи, будет предположительно работать нормально??
Аватара пользователя
hinst
энтузиаст
 
Сообщения: 781
Зарегистрирован: 12.04.2008 18:32:38

Re: vmtSelfPtr

Сообщение Sergei I. Gorelkin » 18.08.2009 12:24:26

Не будет, потому что там, где в Дельфи добавлялся vmtSelfPtr, его добавлять не нужно, а там, где не добавлялся - наоборот, нужно.
Аватара пользователя
Sergei I. Gorelkin
энтузиаст
 
Сообщения: 1405
Зарегистрирован: 24.07.2005 14:40:41
Откуда: Зеленоград

Re: vmtSelfPtr

Сообщение hinst » 19.08.2009 11:07:54

А как тогда?
const vmtSelfPtr = - sizeof(TVmt);
так покатит?
Аватара пользователя
hinst
энтузиаст
 
Сообщения: 781
Зарегистрирован: 12.04.2008 18:32:38


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 28

Рейтинг@Mail.ru