메모리 누수 응용 프로그램에서 Internet Explorer 10에 대 한 열거자 개체를 사용 하는 경우

증상

다음 시나리오를 고려하십시오.

  • 웹 브라우저 컨트롤 호스트 응용 프로그램 또는 ActiveX 컨트롤을 개발 합니다.

  • 응용 프로그램이 나 ActiveX 컨트롤은 HTML 페이지의 컬렉션 인터페이스에서 열거자 개체를 참조합니다. 이 기능을 만들려면 다음 지침을 참조 하십시오.

    • C + +에서는 컬렉션 인터페이스의 get__newEnum 함수를 호출 하 여 열거자를 가져옵니다.  컬렉션 인터페이스의 예로 IHTMLElementCollection이며이 일반적으로 IHTMLDocument2::get_all를 호출 하 여 가져옵니다.

    • Visual Basic 컬렉션 (예: document.all 컬렉션)이 이렇게 foreach 구문에서 수행 합니다.

  • 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 용 누적 보안 업데이트: 2013 년 8 월 13,

자세한 내용

소프트웨어 업데이트 용어에 대한 자세한 내용을 보려면, 다음 문서 번호를 클릭하여 Microsoft 기술 자료의 문서를 확인하십시오.

Microsoft 소프트웨어 업데이트를 설명 하는 데 사용 되는 표준 용어에 대 한 824684 설명

추가 도움이 필요하신가요?

기술 향상
교육 살펴보기
새로운 기능 우선 가져오기
Microsoft Insider 참가

이 정보가 유용한가요?

소중한 의견에 감사드립니다.

피드백을 주셔서 감사합니다. Office 지원 에이전트와 연락하는 것이 도움이 될 것 같습니다.

×