AfxCheckMemorynbsp(&N);

BOOL AfxCheckMemory ( );

ส่งกลับค่า

ไม่ใช่ศูนย์ถ้าไม่มีข้อผิดพลาดหน่วยความจำ 0 อื่น?

หมายเหตุ

ฟังก์ชันนี้ตรวจสอบพูลหน่วยความจำที่ว่าง และพิมพ์ข้อความผิดพลาดที่จำเป็น ถ้าฟังก์ชันตรวจพบความเสียหายไม่มีหน่วยความจำ มันพิมพ์อะไร?

บล็อกหน่วยความจำทั้งหมดที่ปัจจุบันถูกปันส่วนบนกองจะถูกตรวจสอบ รวมทั้งจัดสรร โดยใหม่แต่ไม่ผู้จัดสรร โดยเรียกโดยตรงไปยังต้นแบบหน่วยความจำ allocators เช่นฟังก์ชันmallocหรือฟังก์ชัน Windows GlobalAlloc ถ้าพบบล็อกใด ๆ จะเสีย ข้อความจะพิมพ์ให้ผลผลิตดีบักเกอร์?

ถ้าคุณรวมบรรทัด

#กำหนดใหม่ DEBUG_NEW

ในโมดูลโปรแกรม แล้วต่อมาเรียกAfxCheckMemoryแสดงชื่อแฟ้มและเส้นหมายเลขที่ถูกจัดสรรหน่วยความจำ?

หมายเหตุnbsp  ถ้าโมดูลของคุณประกอบด้วยการใช้งานหนึ่ง หรือมากกว่าของคลาสที่ serializable นั้นคุณต้องใส่ตัว #define บรรทัดหลังจากการเรียกแมโคIMPLEMENT_SERIALล่าสุด(&N)?

ฟังก์ชันนี้ใช้งานได้เฉพาะในรุ่นตรวจแก้จุดบกพร่องของ MFC?

ตัวอย่าง

 / / ตัวอย่าง AfxCheckMemory
กรง * pcage =ใหม่กรง (21) nbsp / / กรงที่ได้รับมาจาก CObject
อายุ * หน้า =ยุคใหม่ (22);     / / อายุจะไม่ได้รับมาจาก CObject
*(((char*) pcage) - 1) = 99   / / เสียหายข้างต้นยามไบต์
*(((char*) หน้า) - 1) = 99    / / เสียหายข้างต้นยามไบต์
AfxCheckMemory()(&N)

ผลลัพธ์ได้จากโปรแกรมมีดังนี้:

ข้อผิดพลาดในการตรวจสอบหน่วยความจำที่ $ 0067495F = $ 63 ควร$ FD
ความเสียหาย: ก่อนไม่ใช่วัตถุบล็อกที่ $ 00674960
ไม่ใช่วัตถุการปันส่วนที่แฟ้ม test02.cxx(48)
ไม่ใช่วัตถุอยู่ที่ $ 00674960 เป็นยาว 2 ไบต์
ข้อผิดพลาดในการตรวจสอบหน่วยความจำที่ $ 00674905 = $ 63 ควร$ FD
ความเสียหาย: ก่อนวัตถุบล็อกที่ $ 00674906
วัตถุที่มีการปันส่วนที่แฟ้ม test02.cxx(47)
วัตถุที่อยู่ที่ $ 00674906 เป็นยาว 6 ไบต์

Index