Вниз
Скачать: CL | DM;

Интерфейс   Найти похожие ветки 

← →
Paha_   (2002-12-15 15:12) [0]

Возможно ли имея указатель на интерфейс, получить указатель на класс, который реализует это интерфейс?


← →
VaS ©   (2002-12-15 15:51) [1]

TYourClass(InterfaceRef).


← →
Юрий Федоров ©   (2002-12-15 16:22) [2]

А мне кажется что теоретически нельзя.
Он же может быть реализован на любом языке программирования


← →
Dimka Maslov ©   (2002-12-15 16:57) [3]

Если класс, реализующий интерфейс написан в Delphi и интерфейс - единственный - то можно.

function GetSoleInterfaceObject(I: IUnknown): TObject;
var
P: Integer;
begin
P := Integer(I);
Inc(P, $fffffd2c); // проверено в D5
Result := TObject(P)
end;


Таким образом может быть получен указатель на объект, в котором реализован единственный интерфейс. Дальше из него можно вытаскивать что угодно.

Если класс унаследован от нескольких интерфейсов, то определить указатель на объект не представляется возможным.






Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.009 c
14-86094
KA_
2002-12-05 09:26
2002.12.26
Лог сервера Interbase


1-86030
SemFLY
2002-12-16 08:21
2002.12.26
Delphi 7...проблемы... :-(


1-85881
Pasha_
2002-12-15 04:37
2002.12.26
TMetaClass


14-86181
lak_b
2002-12-06 17:55
2002.12.26
chmod в IE?


14-86085
spROOT13
2002-12-08 17:48
2002.12.26
Архивы форумов




   Наверх