Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Надо после QueryInterface как то уничтожать полученый интерфейс ?


Chlavik ©   (2004-10-28 16:41:00) 

Смотрите тему ..


vuk   (2004-10-29 10:59:00) [1]

to Chlavik ©   (29.10.04 02:13) [15]:
>QueryInterface выделяет какуюто память ?
Не выделяет. Только возвращает ссылку на интерфейс.


jack128   (2004-10-29 02:40:00) [2]

Chlavik ©   (29.10.04 2:13) [15]
Вот, почитай книженцию..Думаю многое прояснит. http://www.bcbdev.ru/winapi/documentation/inside_com.zip


jack128   (2004-10-29 02:37:00) [3]

Chlavik ©   (29.10.04 2:13) [15]
Зависит от его реализации.  В той, что представлена в TInterfacedObject - нет.


Chlavik   (2004-10-29 02:13:00) [4]

Я всё равно не могу понять ... QueryInterface выделяет какуюто память ?


jack128   (2004-10-29 00:41:00) [5]

Chlavik ©   (29.10.04 0:26) [13]
НУ а теперь что скажеш ?

А что Вук должен сказать?? Release - это не уничтожение интерфейса. "Интерфейс нельзя "уничтожить. Нет такого понятия."(с) Vuk. Уничтожить можно объект реализующий этот интерфейс. но Release и этого не делает. Он лишь говорит о том, что данный интерфейс клиенту больше не нужен, а вот уничтожаться или нет - это решает сам объект.


Chlavik   (2004-10-29 00:26:00) [6]


> vuk ©   (28.10.04 16:43) [1]
> Интерфейс нельзя "уничтожить". Нет такого понятия.


НУ а теперь что скажеш ?


VMcL   (2004-10-28 23:59:00) [7]

>> Chlavik ©  (28.10.04 16:41)

http://www.delphimaster.ru/cgi-bin/forum.pl?id=1098678827&n=8


Polevi   (2004-10-28 18:30:00) [8]

>vuk ©   (28.10.04 18:14) [10]
это все понятно, см [8]
насчет пользоваться - смотря на чем писать клиента


vuk   (2004-10-28 18:14:00) [9]

to Polevi ©   (28.10.04 18:05) [8]:
Еще о текущем счетчике ссылок стоит помнить. Так что в результате вызов Release может что-то уничтожить или может ничего не уничтожить. А может и сломать что-нибудь. И вообще, прямой вызов Release - не то средство, которым стоит направо и налево пользоваться.


jack128   (2004-10-28 18:13:00) [10]

Chlavik ©   (28.10.04 17:59) [7]
А почему же надо выполнять Newinterface:=nil; ???

можно не выполнять. Дельфя сама за тя все сделает.


Polevi   (2004-10-28 18:05:00) [11]

>vuk ©   (28.10.04 17:26) [5]
зависит от реализации IUnknown объектом :)


Chlavik   (2004-10-28 17:59:00) [12]

А почему же надо выполнять Newinterface:=nil; ???


Silver Alex   (2004-10-28 17:58:00) [13]

интерфейс удаляется просто

....
MyInterfice:=nil;


vuk   (2004-10-28 17:26:00) [14]

И что же "уничтожает" Release?


Гаврила   (2004-10-28 17:13:00) [15]

При вызове  QueryInterface произойдет _AddRef
А _Release произойдет по потере полученной ссылки


Polevi   (2004-10-28 17:09:00) [16]

QueryInterface::Release


Digitman   (2004-10-28 16:57:00) [17]


> Chlavik ©   (28.10.04 16:41)


ты сморозил глупость.
поепробуй сначала, не торопясь ..


vuk   (2004-10-28 16:43:00) [18]

Интерфейс нельзя "уничтожить". Нет такого понятия.


Наверх

Титульная страница Поиск, карта сайта Написать письмо