2009-01-31 2 views
0

Я нашел проблему с классом MFC CHtmlView в приложении MDI. Неоднократное открытие и закрытие окон приводит к постепенному истощению памяти. Я исследовал проблему и нашел статью MSDN о проблеме BSTR (http://support.microsoft.com/kb/241750), реализовал эти исправления, но по-прежнему происходит большая утечка. Я определил проблему как в VC8, так и в VC9, попытался заверить, что все интерфейсы действительно выпущены, но я полностью в тупике.Потребление памяти с помощью CHtmlView MDI windows

Самый простой способ увидеть это - использовать MFC AppWizard (vc8 или vc9) для создания стандартного приложения MDI, только изменить CVEN по умолчанию на CHtmlView. Скомпилируйте и запустите приложение в отладке, и приложение автоматически откроет новое окно html в MSDN. Откройте TaskManager, чтобы следить за памятью, используемой приложением. Закройте открытое окно. Затем каждый раз, когда вы открываете и закрываете новое окно, вы увидите определенное увеличение объема памяти, хранящейся в приложении. Как только приложение закрыто, хотя оно не обнаруживает утечек.

Если у кого-то есть какая-либо информация, я был бы рад услышать от вас.

+0

Нет ответа ... только подтверждение того, что я испытываю эту проблему тоже! Память выделяется при вызове Navigate() или Navigate2(), но более конкретно в рамках этой процедуры, это вызов IWebBrowser2 :: Navigate(), который на самом деле выделяет память, которая не была выпущена. – 2010-05-20 15:40:14

+0

Просто любопытно: Надеюсь, вам не назначена задача отладки утечки памяти в каком-то программном обеспечении, которое не было затронуто через 10 лет? Я имею в виду: MFC, wtf: D –

ответ