Подсчет ссылок
Модель COM является автоматически не пытается удалить объект из памяти, когда он думает, что объект больше не используется.Вместо этого, программист объекта должен удалить неиспользуемый объект.Программист определяет, является ли объект можно удалить на основе счетчике ссылок.
Модель COM использует методы IUnknown, AddRef и выпуск, чтобы управлять счетчик ссылок интерфейсов объекта.Общие правила для вызова этих методов:
Когда клиент получает указатель интерфейса AddRef должен быть вызван в интерфейсе.
Когда клиент завершил, используя указатель интерфейса, он должен вызвать Выпуск.
В простой реализации увеличивает каждого вызова AddRef и каждое Выпуск вызывают уменьшения счетчика переменной в пределах объекта.После получения количества равным нулю, интерфейс больше не имеют пользователей и свободно удалить из памяти.
Подсчет ссылок можно также реализовать так, что учитывается каждое ссылку на объект (не к отдельному интерфейсу).В этом случае каждое AddRef и Выпуск вызывает делегаты в центральной реализации объекта и свободны Выпуск весь объект при его достигаемости нулевое значение счетчика ссылок.
Примечание |
---|
При CComObject- производный объект создан с помощью оператора новый, счетчик ссылок 0.Поэтому в AddRef должен вызываться после успешного создания CComObject- производный объект. |