ข้ามไปที่เนื้อหาหลัก
การสนับสนุน
ลงชื่อเข้าใช้
ลงชื่อเข้าใช้ด้วย Microsoft
ลงชื่อเข้าใช้หรือสร้างบัญชี
สวัสดี
เลือกบัญชีอื่น
คุณมีหลายบัญชี
เลือกบัญชีที่คุณต้องการลงชื่อเข้าใช้

อาการ

พิจารณาสถานการณ์สมมติต่อไปนี้:

  • คุณพัฒนาโปรแกรมประยุกต์โฮสต์การควบคุมที่เว็บเบราว์เซอร์หรือตัวควบคุม ActiveX

  • โปรแกรมประยุกต์หรือตัวควบคุม ActiveX อ้างอิงถึงวัตถุตัวแจงนับจากอินเทอร์เฟซสำหรับคอลเลกชันของเพจ HTML เมื่อต้องการสร้างฟังก์ชันนี้ ดูคำแนะนำต่อไปนี้:

    • ใน c ++, ตัวแจงนับได้รับ โดยการเรียกฟังก์ชันget__newEnumของอินเทอร์เฟซการเรียกเก็บเงิน  ตัวอย่างของอินเทอร์เฟซแบบคอลเลกชันคือIHTMLElementCollectionและซึ่งโดยปกติจะได้รับ โดยการโทรหาIHTMLDocument2::get_all

    • ใน Visual Basic ขั้นตอนนี้จะดำเนินการเบื้องหลังในโครงสร้างแบบ foreach เหนือคอลเลกชัน (ตัวอย่างเช่น คอลเลกชัน document.all)

  • คุณเรียกใช้โปรแกรมประยุกต์บนคอมพิวเตอร์ที่มี 10 Internet Explorer ที่ติดตั้งอยู่

ในสถานการณ์สมมตินี้ การรั่วไหลของหน่วยความจำเกิดขึ้น

หมายเหตุ  เนื่องจากตัวควบคุม 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

ต้องการความช่วยเหลือเพิ่มเติมหรือไม่

ต้องการตัวเลือกเพิ่มเติมหรือไม่

สํารวจสิทธิประโยชน์ของการสมัครใช้งาน เรียกดูหลักสูตรการฝึกอบรม เรียนรู้วิธีการรักษาความปลอดภัยอุปกรณ์ของคุณ และอื่นๆ

ชุมชนช่วยให้คุณถามและตอบคําถาม ให้คําติชม และรับฟังจากผู้เชี่ยวชาญที่มีความรู้มากมาย

ข้อมูลนี้เป็นประโยชน์หรือไม่

คุณพึงพอใจกับคุณภาพภาษาเพียงใด
สิ่งที่ส่งผลต่อประสบการณ์ใช้งานของคุณ
เมื่อกดส่ง คำติชมของคุณจะถูกใช้เพื่อปรับปรุงผลิตภัณฑ์และบริการของ Microsoft ผู้ดูแลระบบ IT ของคุณจะสามารถรวบรวมข้อมูลนี้ได้ นโยบายความเป็นส่วนตัว

ขอบคุณสำหรับคำติชมของคุณ!

×