Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > Release COM объекта - недостаточно?


Автор: leniviy 12.11.2003, 14:23
Я использую сторонний модуль для работы с БД, который работает как COM объект
при работе он использует BDE, а для правильной работы проги очень нужно, чтобы драйвера BDE не были заняты. После того, как модуль сделает свое дело, я вызываю для него метод Release, но освобождения BDE не происходит, пока вся программа не завершится
Как же убить этот объект чтоб наповал? ответте, кто знает, пожалуйста

Автор: shedon 12.11.2003, 15:12
По сути метод Release, ведёт учёт ссылок на объект(переменная m_dwRef), этот метод вычитает из m_dwRef единицу, и только если после этого m_dwRef становится равным 0 объект удаляется. Тоесть, скорее всего, у твоего объекта несколько пользователей.

Автор: Ars 12.11.2003, 18:56
Если COM - inprocess server, попробуй ф-цию CoFreeUnusedLibraries();

Автор: leniviy 13.11.2003, 15:31
что такое inprocess server?

Автор: leniviy 13.11.2003, 16:46
Цитата
Если COM - inprocess server, попробуй ф-цию CoFreeUnusedLibraries();
Кланюсь в ноги

Автор: Ars 14.11.2003, 10:39
Цитата
что такое inprocess server?

Это когда экземпляр COM-объекта располагается в адресном пространстве вызывающего процесса

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)