IPB
ЛогинПароль:

> ВНИМАНИЕ!

Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.

 
 Ответить  Открыть новую тему 
> Interface, смещение на 8 байт?
TarasBer
сообщение 8.12.2011 15:56
Сообщение #1


Злостный любитель
*****

Группа: Пользователи
Сообщений: 1 755
Пол: Мужской

Репутация: -  62  +


У меня два вопроса.
Почему отладчик говорит, что некий интерфейс является указателем на C80874, хотя если привести его к какому-либо классу, то он уже будет указывать на C8087C? Откуда эти 8 байт?
И как правильно, с проверкой RTTI, приводить интерфейс к классу-наследнику? Приводить к целому, вычитать 8, потом приводить к классу - это как-то криво.


--------------------
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
IUnknown
сообщение 8.12.2011 17:26
Сообщение #2


a.k.a. volvo877
*****

Группа: Пользователи
Сообщений: 1 013
Пол: Мужской

Репутация: -  627  +


Вопрос №2: на старых версиях Дельфи есть много разных хаков (вот тут есть много ссылок по теме Have an interface, can I get the name of the class that has implemented it?). В современных (начиная с 2010) это делается тем же As (используется вызов SafeIntfAsClass).
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 26.04.2024 23:44
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"