Спасибо за внимание
vmtSelfPtr
Модератор: Модераторы
vmtSelfPtr
Превед всм. Подскажите пожалуйста, где в Lazarus vmtSelfPtr (если такой есть вообще). Оч. спичит
Спасибо за внимание

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