![]() |
|
Модераторы: Rickert, Alexeis, BorisVorontsov |
![]()
|
|
| AndreySol |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 772 Регистрация: 19.6.2004 Репутация: нет Всего: 1 |
Вопрос такой - у фильтра, унаследованного от CTransInPlaceFilter есть конструктор, а деструктор у него есть ? Если есть, то когда он вызывается ? Или деструкторы в фильтрах DirectShow не используются ? Похоже что для DS фильтров вызывается конструктор, а затем метод Release() интерфейса IUnknown, который сидит в предках любого фильтра DS ?
Отчего сам вопрос возник: к примеру я открываю файл, и в граф воспроизведения этого файла добавляю свой фильтр. При этом в конструкторе фильтра я инициализирую сторонюю библиотеку. Далее я с этим файлом и графом отработал, соответственно мне необходимо освободить эту библиотеку - и вот тут не знаю что делать, точнее где это сделать. В каком методе фильтра, или как-то еще ? |
|||
|
||||
| zkv |
|
|||
![]() ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2133 Регистрация: 23.7.2006 Где: Санкт-Петербург Репутация: нет Всего: 92 |
почему бы не перегрузить тот же метод Release() - выполняем определенные действия, затем вызываем метод базового класса.
|
|||
|
||||
| AndreySol |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 772 Регистрация: 19.6.2004 Репутация: нет Всего: 1 |
Да оно вроде и понятно, но ведь часто делают так: сначала QueryInterface() затем Release() потом пользуются полученным указателем стал не нужен: = NULL Получается, что Release() не самое подходящее место. |
|||
|
||||
![]()
|
| Вы можете найти полезным что... | |
|
|
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Мультимедия, OpenGL/DirectX | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |