Форум: "Основная";
Текущий архив: 2004.12.12;
Скачать: [xml.tar.bz2];
ВнизИнтерфейс объявляется как класс!??? Эт как? Найти похожие ветки
← →
WondeRu © (2004-11-29 13:20) [0]В модуле ActiveX.pas интерфейс объявлен так:
{$EXTERNALSYM IPersistStreamInit}
IPersistStreamInit = interface(IPersistStream)
["{7FD52380-4E07-101B-AE2D-08002B2EC713}"]
function InitNew: HResult; stdcall;
end;
А в OleCtl.pas, вот так:
{$EXTERNALSYM IPersistStreamInit}
IPersistStreamInit = class(IPersistStream)
public
function InitNew: HResult; virtual; stdcall; abstract;
end;
Второго кода понять никак не могу...
Объясните откуда взялось такое объявление интерфейса и для чего нужно?
← →
jack128 © (2004-11-29 13:55) [1]WondeRu © (29.11.04 13:20)
А в OleCtl.pas, вот так:
{$EXTERNALSYM IPersistStreamInit}
IPersistStreamInit = class(IPersistStream)
public
function InitNew: HResult; virtual; stdcall; abstract;
end;
AFIAK не скомпилируется это.
← →
WondeRu © (2004-11-29 14:26) [2]jack128 © (29.11.04 13:55) [1]
AFIAK не скомпилируется это.
что значат сие странные слова? )
← →
jack128 © (2004-11-29 14:34) [3]то и означает. попробуй скомпилировать этот код. возможно в D2 это и компилировалось, но не сейчас.
← →
WondeRu © (2004-11-29 15:14) [4]jack128 © (29.11.04 14:34) [3]
понятно что не компилится, Вы хотите сказать, что этот код нужен только для совместимости со старыми версиями Делфи!? Тогда спасибо за ответ!
← →
jack128 © (2004-11-29 15:47) [5]Именно. Я так понимаю, что в D2 небыло ключевого слова interface (в контексте объявления интерфейсов COM) и поэтому вот так вот делали. в принципе и сейчас можно подобным образом образом извратиться
IUnknown = class(TObject)
function QueryInterface(const IID: TGUID; out Obj): HResult; virtual; stdcall; abstract;
function _AddRef: Integer; stdcall; virtual; stdcall; abstract;
function _Release: Integer; stdcall; virtual; stdcall; abstract;
end;
TInterfacedObject = class(IUnknown)
function QueryInterface(const IID: TGUID; out Obj): HResult; stdcall; override;
function _AddRef: Integer; stdcall; override;
function _Release: Integer; stdcall; override;
end;
Но тогда те будут недоступно множественно наследование интерфейсов..
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.12.12;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.046 c