Головна сторінка
Top.Mail.Ru Яндекс.Метрика
Форум: "Основна";
Поточний архів: 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 = клас(IPersistStream)
громадськість
function InitNew: HResult; віртуальний; 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.56 MB
Час: 0.051 c
4-1099146087
IronRat
2004-10-30 18:21
2004.12.12
FileMapping


3-1100598126
Дмітрій_Д
2004-11-16 12:42
2004.12.12
SQL / Нагадайте комманду ласка!


1-1101423144
Рант
2004-11-26 01:52
2004.12.12
необов'язкові параметри


4-1099031848
Grundic
2004-10-29 10:37
2004.12.12
Active Directory - перевірка користувач-пароль - як?


3-1100508460
акуратний
2004-11-15 11:47
2004.12.12
TDBLookupComboBox





африкаанс албанський арабська вірменин азербайджанець баскський білоруський болгарська каталонський Китайська (спрощене письмо) Китайський традиційний) хорватський чеська данську мову нідерландський Ukranian естонець Філіппінська фінську мову французький
галісійська грузинський німецький грецький гаїтянський креольський давньоєврейську хінді угорський ісландський індонезієць ірландський італійський японський корейський латиська литовець македонець малайський мальтійський норвежець
перс полірування португальська румунський російська сербський словацький словенський іспанська суахілі шведську мову тайський турецька український урду в'єтнамський валлійський ідиш бенгальський боснійський
кебуано есперанто гуджараті хауса хмонг ігбо яванський каннада кхмерская Лао латинь маорі маратхі монгольський непальська панджабі сомалійський тамільська телугу йоруба
зулуський
Англійська Французький Німецький Італійський Португальська Русский Іспанська