Головна сторінка
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.57 MB
Час: 0.075 c
3-1100504182
wHammer
2004-11-15 10:36
2004.12.12
Чи можливе відновлення?


1-1101287166
vlad12
2004-11-24 12:06
2004.12.12
компілює але невиконуюча


4-1099046847
студент КНТУ
2004-10-29 14:47
2004.12.12
WIN API + Монітор


1-1101740956
Wolffgang
2004-11-29 18:09
2004.12.12
Взаємозв'язок між числами


1-1101648469
Dmitry_04
2004-11-28 16:27
2004.12.12
Вікно згортається на панель задачь ...





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