Triệu chứng
Xem xét tình huống sau:
-
Bạn phát triển ứng dụng máy chủ điều khiển trình duyệt web hoặc điều khiển ActiveX.
-
Ứng dụng hoặc điều khiển ActiveX tham chiếu đối tượng liệt kê từ giao diện bộ sưu tập của một trang HTML. Để tạo chức năng này, hãy xem các hướng dẫn sau:
-
Trong C++, số đếm được được gọi hàm get__newEnum giao diện thu thập. Ví dụ về một giao diện thu thập là IHTMLElementCollectionvà điều này thường được gọi IHTMLDocument2::get_all.
-
Visual Basic, bước này được thực hiện hậu trong xây dựng foreach qua tập hợp (ví dụ: bộ sưu tập document.all).
-
-
Bạn chạy ứng dụng trên máy tính đã cài đặt Internet Explorer 10.
Trong trường hợp này, một rò rỉ bộ nhớ xảy ra.
Lưu ý Do điều khiển ActiveX dùng nhiều bộ nhớ hơn phần tử HTML riêng, rò rỉ bộ nhớ rõ ràng nếu một trong các phần tử trong bộ sưu tập điều khiển ActiveX. Ví dụ: một rò rỉ bộ nhớ xảy ra khi bạn sử dụng mã C++ sau một chức năng của ứng dụng máy chủ điều khiển trình duyệt web. Trong trường hợp này, một số lượng lớn bộ nhớ bị rò rỉ nếu một trong các yếu tố trên trang web điều khiển 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(); }Giải pháp
Để khắc phục sự cố này, hay cài đặt bản cập nhật sau:
2862772 MS13-059: Cập Nhật bảo mật tích luỹ cho Internet Explorer: ngày 13 tháng 8 năm 2013
Thông tin
Để biết thêm thông tin về thuật ngữ cập nhật phần mềm, hãy bấm vào số bài viết sau để xem bài viết trong Cơ sở Kiến thức Microsoft:
824684 mô tả thuật ngữ chuẩn được sử dụng để miêu tả các bản cập nhật phần mềm Microsoft