Re[6]: Ошибка с подсчетом ссылок
От: lol4ever  
Дата: 04.10.06 12:41
Оценка:
ЛБ>Я только что изучил comip.h и во всех конструкторах _com_ptr_t нашел AddRef либо QueryInterface.
ЛБ>Противное было бы странно, уж очень интенсивно их пользуют во всем мире.

ЛБ>Но так ли это, что при создании ты делаешь QueryInterface?

ЛБ>Знаешь ли ты, что CComObject::CreateInstance дает объект с нулевым счетчиком?

ЛБ>Лазар


знаю, поэтому сразу после создания в сервере делаю QueryInterface — и интерфейс пускай лежит, и счетчик = 1, чтобы работать с объектом можно было.
НО потом мне приходится делать дополнительный аддреф, дабы после возврата из события объект жив остался.
Сейчас заменил входной параметр функции-обработчика на просто ВашИнтерфейс*. Все работает, ссылки не теряются, как и следовало ожидать. Но если опять заменю параметр на ВашИнтерфейсPtr — получу потерянную ссылку.

Соответственно получается, что не используется конструктор... Или как?.. Не понимаю =(

ЗЫ
могу привести примерный код
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.