Симптоми
Да разгледаме следния сценарий:
-
Разработка на уеб браузър контрол хост приложение или ActiveX контрола.
-
Приложение или ActiveX контрола препратки номератор обект от интерфейс за събиране на HTML страница. За да създадете тази функция, вижте следните указания:
-
В C++ номератор е получен чрез извикване на функцията get__newEnum колекция интерфейс. Пример за събиране на интерфейс е IHTMLElementCollectionи това обикновено се получава чрез извикване на IHTMLDocument2::get_all.
-
Във Visual Basic тази стъпка се извършва зад кулисите в foreach конструкция над колекция (например събиране на document.all).
-
-
Изпълнявате приложение на компютър с Internet Explorer 10 инсталиран.
В този случай възниква загуба на памет.
Забележка: Тъй като ActiveX контроли консумира повече памет от основните HTML елементи, загуба на памет е по-ясно, ако един от елементите в колекцията е ActiveX контрола. Например възниква загуба на памет, когато използвате следния код на C++ функция на хост приложението уеб браузър контрол. В този случай голям обем памет е изтекъл ако един от елементите на уеб страницата е ActiveX контрола. void CEnumLeakDlg::OnBnClicked(){ IDispatch* pDocDisp = m_web.get_Document(); IHTMLDocument2* pDoc = NULL; HRESULT hr = pDocDisp->QueryInterface(IID_IHTMLDocument2, (void**)&pDoc); IHTMLElementCollection* pElColl = NULL; hr = pDoc->get_all(&pElColl); IUnknown* pEnum = NULL; hr = pElColl->get__newEnum(&pEnum); pEnum->Release(); pElColl->Release(); pDoc->Release(); pDocDisp->Release(); }Решение
За да разрешите този проблем, инсталирайте следната актуализация:
2862772 MS13-059: кумулативна актуализация на защитата за Internet Explorer: 13 август 2013 г.
Допълнителна информация
За повече информация относно терминологията за актуализация на софтуера щракнете върху следния номер на статия, за да я видите в базата данни на Microsoft:
824684 описание на стандартната терминология, използвана за описание на софтуерните актуализации на Microsoft