Форум: "Основная";
Текущий архив: 2002.04.18;
Скачать: [xml.tar.bz2];
ВнизInterface и указатель Найти похожие ветки
← →
NDelphist (2002-04-03 22:52) [0]Есть такая вещь:
IMyInterface=interface
["{2D67E340-4705-11D6-A1F0-444553540000}"]
function Funct:integer;
end;
TMyClass=class(TInterfacedObject,IMyInterface)
function Funct:integer;
end;
var
Form1: TForm1;
QI:function (IID:TGUID; out Obj):Longint;;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
cl:TMyClass;
p,p1:pointer;
begin
cl:=TMyClass.Create;
cl.GetInterface(IMyInterface,p);
QI:=p;
QI(IMyInterface,p1); //Invalid pointer operation
cl._Release;
end;
function TMyClass.Funct:integer;
begin
Result:=3;
end;
Почему я не могу вызвать эту функцию по адресу? По идее, GetInterface возвращает указатель на vtable и соответсвенно должна быть возможность вызывать методы интерфейса по их адресам. Почему же здесь это не работает?
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.04.18;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.006 c