Головна сторінка
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.064 c
1-1101818391
Chlavik
2004-11-30 15:39
2004.12.12
ActiveX - правильно оголошені функції ???


1-1101545019
Ало
2004-11-27 11:43
2004.12.12
можна отримати елемент set а по рядку?


3-1100436082
металевий
2004-11-14 15:41
2004.12.12
Ексель і Делфі


4-1098963515
грифон
2004-10-28 15:38
2004.12.12
Дізнатися шлях до excel


14-1101113185
Гість
2004-11-22 11:46
2004.12.12
компанія "Інформконтакт"





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