Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: CHtmlView::GetDocument2() жрёт память  (Прочитано 5285 раз)
0 Пользователей и 1 Гость смотрят эту тему.
kisilevski
Постоялец

ru
Offline Offline
Пол: Мужской

WWW
« : 07-03-2009 10:00 » new

У меня CHtmlView based MDI приложение. В чистом виде открываю в новый документ страничку - память, занимаемая программой увеличивается примерно на 500кБ. Ничего внутри не делаю, закрываю страничку - память, занимаемая приложением на те же примерно 500 кБ уменьшается.

В обработчик OnDocumentComplete вставляю следующий код:
Код:
CComPtr<IHTMLDocument2> pHtmlDoc=NULL;
pHtmlDoc = GetDocument2();
Память перестаёт освобождаться. При каждом новом открытии той же странички увеличивается, при закрытии не освобождается.
Предположил, что это CComPtr не смывает за собой, сделал ручками:
Код:
IHTMLDocument2* pHtmlDoc=NULL;
pHtmlDoc=GetDocument2(); if(pHtmlDoc){
 // Ничего не трогал!
 pHtmlDoc->Release();
}
Тот же самый эффект.

Кстати, CDHtmlDialog ведёт себя точно таким же образом.

Кто-нибудь сталкивался с подобным поведением, и как решали проблему?

( про то, что функция Navigate не освобождает скармливаемый ей bstrURL я знаю, и соответствующие меры принял, да и похоже, что дело как раз в GetDocument2() )
За памятью смотрел из Руссиновического процессэксплорера.

Спасибо.
Записан

Ложки нет. See MSDN for details.
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines