Если у меня есть Iunknown * Ptr
, мне нужно позвонить RELEACK ()
на каждом интерфейсе, который я получаю через PTR-> QueryInterface ()
, Кроме того для вызова PTR-> RELEAL ()
, когда я закончу с PTR
?
Раньше я думал что ответ - это «да», но эта цитата из MSDN смущает меня:
иногда вам может потребоваться получить слабую ссылку на объект (то есть вы, возможно, пожелаете получить указатель на один Из его интерфейсов без увеличения ссылочного отсчета), , но это не приемлемо для этого, вызывая
QueryInterface
, а затемвыпуск
.
Я не понимаю, почему это проблематично - если я позвоню PTR-> QueryInterface ()
, а затем вызовите выпуск
на полученном указателе, не должен ссылаться на Объект все еще будет положительным? Как это приводит к неверным указателю?