![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Надо после 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]Интерфейс нельзя "уничтожить". Нет такого понятия.