Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การแก้ไขปัญหา >> ข้อผิดพลาด Windows

แก้ไขข้อผิดพลาด MEM_BAD_POINTER / SmartHeap Library Popup ตอนเริ่มต้น Windows

ผู้ใช้ Windows บางส่วนรายงานว่าเห็นข้อผิดพลาด SmartHeap Library ทุกครั้งที่เริ่มเครื่อง ข้อความในป๊อปอัพจะเป็น MEM_BAD_POINTER หรือ MEM_BAD_POINTER ไม่ว่าจะกด OK หรือ Cancel ผลลัพธ์เหมือนกันคือ เครื่องทำงานปกติ แต่ข้อความจะกลับมาอีกครั้งตอนบูทครั้งถัดไป

แก้ไขข้อผิดพลาด MEM_BAD_POINTER / SmartHeap Library Popup ตอนเริ่มต้น Windows

SmartHeap Library คืออะไร?

SmartHeap เป็นโครงสร้างพื้นฐานเก่า ที่เคยใช้เป็นไลบรารีจัดการหน่วยความจำหลักเมื่อคอมไพล์โปรแกรมบางตัว ในปัจจุบันเกือบไม่มีโปรแกรมไหนยังพึ่งพาคอมโพเนนต์จัดการหน่วยความจำนี้ มักจะมาติดตั้งมาพร้อมกับเวอร์ชันเก่าของ Corel Draw, AutoCAD, Adobe Acrobat เป็นต้น

นี่คือสถานการณ์ที่ทราบว่าก่อให้เกิดข้อความ MEM_BAD_POINTER ในพรอมต์ SmartHeap Library:

  • การติดตั้งโปรแกรมเก่าเสียหาย — สาเหตุทั่วไปที่สุด โปรแกรมเก่าที่ใช้ SmartHeap Library เสียหายบางส่วน หรือมีการเปลี่ยนแปลงทำให้ไฟล์บางส่วนเสียหาย ผู้ใช้หลายคนแก้ได้โดยซ่อมแซมหรือลบโปรแกรมเก่าที่เป็นปัญหา
  • โปรแกรมเก่าไม่เข้ากันได้บางส่วน — ขึ้นอยู่กับเวอร์ชัน Windows และเวอร์ชันโปรแกรมเก่า อาจหลีกเลี่ยงป๊อปอัพได้โดยตั้งค่าโปรแกรมหลักให้รันใน Compatibility Mode กับ Windows เวอร์ชันที่รองรับเต็มที่
  • ค่า Registry เสียหาย — Registry key ที่เหลืออยู่อาจเรียก SmartHeap Library แม้โครงสร้างพื้นฐานแล้วไม่มีอยู่แล้ว การลบ Registry key ที่เหลือด้วยตนเองหรือเครื่องมืออย่าง CCleaner ควรแก้ปัญหาได้ถาวร
  • การเปลี่ยนแปลงระบบล่าสุด — Windows Update หรือการติดตั้งไดรเวอร์ใหม่ อาจเป็นสาเหตุ ควรพิจารณาใช้ System Restore คืนสถานะระบบ
  • ความขัดแย้งโปรแกรมบุคคลที่สามไม่ทราบสาเหตุ — ปัญหานี้เกี่ยวข้องกับแอปเก่าของ Adobe, Corel, AutoCAD แต่ก็อาจมีโปรแกรมเก่าอื่นที่ใช้ SmartHeap Library ให้ Clean Boot เครื่องและตรวจสอบกระบวนการ/รายการเริ่มต้นที่ก่อให้เกิดปัญหา

นี่คือวิธีแก้ไขที่มีประสิทธิภาพที่สุดที่ผู้ใช้ประสบปัญหาใช้สำเร็จ:

วิธีที่ 1: ซ่อมแซมหรือลบโปรแกรมเก่า (ถ้ามี)

ในกรณีที่บันทึกไว้ส่วนใหญ่ ปัญหานี้เกิดจากการติดตั้งโปรแกรมเก่าที่เสียหายและใช้ SmartHeap Library อยู่ จำเป็นต้องทราบว่าเกิดบน Windows 7, 8.1 และ 10

มักรายงานว่าพบกับ Corel Draw เก่า, Adobe Acrobat Reader, AutoCAD แต่อาจเป็นโปรแกรมเก่าอื่นก็ได้

หากคุณอยู่ในสถานการณ์นี้ ให้ลองซ่อมแซมหรือลบโปรแกรมเก่าก่อน

หมายเหตุ: คุณอาจมีสิทธิ์อัปเกรดเป็นเวอร์ชันใหม่กว่า จึงไม่ควรใช้ซอฟต์แวร์เก่าที่ไม่เข้ากันได้กับ Windows อีกต่อไป

ทำตามขั้นตอนด้านล่าง:

  1. กด Windows + R เปิด Run พิมพ์ appwiz.cpl กด Enter เปิด Programs and Featuresแก้ไขข้อผิดพลาด MEM_BAD_POINTER / SmartHeap Library Popup ตอนเริ่มต้น Windows
  2. ในหน้าจอ Programs and Features เลื่อนหาโปรแกรมเก่าที่สงสัยว่าใช้ SmartHeap Module
  3. คลิกขวาที่โปรแกรมเก่า ดูว่ามีตัวเลือก Repair ไหม หากมี ให้คลิก Repair ตามขั้นตอน แล้วรีสตาร์ทและดูว่าปัญหาหายไหมแก้ไขข้อผิดพลาด MEM_BAD_POINTER / SmartHeap Library Popup ตอนเริ่มต้น Windows

    หมายเหตุ: หากซ่อมไม่ได้ ตัวเลือกเดียวคือ Uninstall จากเมนูคอนเทกซ์

  4. หลังบังคับการเปลี่ยนแปลง (ซ่อมหรือลบ) ให้รีบูทและดูว่าข้อความ error กลับมาหรือไม่

หากยังเจอ MEM_BAD_POINTER ให้ไปวิธีถัดไป

วิธีที่ 2: รันโปรแกรมใน Compatibility Mode

ขึ้นอยู่กับโปรแกรมเก่าที่มีปัญหา อาจแก้ได้โดยตั้งค่าให้รันใน Compatibility Mode กับ Windows เวอร์ชันที่รองรับเต็มที่

มีกรณีบันทึกไว้มากมายที่ผู้ใช้แก้ได้โดยตั้งค่า AutoCAD เก่าให้รันใน Windows 7 Compatibility Mode

สำคัญ: วิธีนี้มีผลต่อกรณีที่ Executable หลักของโปรแกรมเก่าถูกเรียกโดย Startup Item ทุกครั้งที่บูท

ไม่ว่าจะเป็น AutoCAD หรือโปรแกรมอื่น ทำตามขั้นตอน:

  1. คลิกขวาที่ Executable หลักของโปรแกรมเก่าที่สงสัย เลือก Propertiesแก้ไขข้อผิดพลาด MEM_BAD_POINTER / SmartHeap Library Popup ตอนเริ่มต้น Windows
  2. ในหน้าต่าง Properties คลิกแท็บ Compatibility
  3. ติ๊กถูก Run this program in compatibility mode for: เลือก Windows 7 หรือเวอร์ชันเก่ากว่าถ้าจำเป็น แล้วคลิก Applyแก้ไขข้อผิดพลาด MEM_BAD_POINTER / SmartHeap Library Popup ตอนเริ่มต้น Windows
  4. รีสตาร์ทเครื่องและดูว่าปัญหาหายที่บูทครั้งถัดไปหรือไม่

หากยังเจอ MEM_BAD_POINTER ให้ไปวิธีถัดไป

วิธีที่ 3: สแกน Registry

หากวิธีข้างต้นไม่ได้ผล ควรพิจารณาว่าอาจเป็น Registry key ที่เหลืออยู่เรียก SmartHeap Library แม้โครงสร้างพื้นฐานหายไปแล้ว

หากเป็นเช่นนี้ ปัญหาจะหายก็ต่อเมื่อระบุและลบ Registry key ที่เป็นปัญหา แต่วิธีทำด้วยตนเองไม่แนะนำ เพราะมีสถานการณ์หลากหลาย ควรใช้ Suite บุคคลที่สามที่ระบุและลบ Registry key ที่เหลือโดยอัตโนมัติ

ขั้นตอนใช้ CCleaner ทำความสะอาด Registry:

  1. เปิดเบราว์เซอร์ ไปหน้าดาวน์โหลด CCleaner รุ่นล่าสุด ดาวน์โหลดและติดตั้งแก้ไขข้อผิดพลาด MEM_BAD_POINTER / SmartHeap Library Popup ตอนเริ่มต้น Windowsแก้ไขข้อผิดพลาด MEM_BAD_POINTER / SmartHeap Library Popup ตอนเริ่มต้น Windows
  2. เปิด CCleaner คลิก Registry ด้านซ้าย
  3. คลิก Scan for Issues รอจบการสแกนแก้ไขข้อผิดพลาด MEM_BAD_POINTER / SmartHeap Library Popup ตอนเริ่มต้น Windows

    หมายเหตุ: การดำเนินการนี้จะลบ Registry entry ที่ไม่ได้ใช้งาน ไม่ก่อให้เกิดความเสียหาย เพราะจัดการเฉพาะค่า Registry ที่เสียหายและพาธที่ไม่ชี้ไปที่ปลายทางที่ใช้งานได้

  4. หลังสแกนจบ สามารถคลิก Clean ทำความสะอาดทั่วไปได้ (เป็นทางเลือก)
  5. รีสตาร์ทเครื่องและดูว่าสแกน Registry ช่วยแก้ MEM_BAD_POINTER ได้ไหม

หากยังมีปัญหา ให้ไปวิธีถัดไป

วิธีที่ 4: ใช้ System Restore Point

หากเพิ่งเจอข้อผิดพลาดนี้ โอกาสมากที่การเปลี่ยนแปลง OS ล่าสุดเป็นสาเหตุ ผู้ใช้หลายคนแก้ได้โดยใช้ System Restore คืนสถานะเครื่อง

หากไม่เคยใช้ System Restore จำไว้ว่านี้คือยูทิลิตี้ที่คืนสถานะเครื่องไปยังจุดที่ปกติ (หากมี Snapshot พร้อมใช้)

หมายเหตุ: หากไม่ได้เปลี่ยนพฤติกรรมเริ่มต้นของ System Restore ควรมี Snapshot มากมาย เนื่องจากตั้งค่าสร้าง Entry ใหม่ก่อนเหตุการณ์สำคัญ (ติดตั้งโปรแกรมใหญ่, Windows Update สำคัญ ฯลฯ)

หากเข้าใจเครื่องมือนี้ ให้ระบุ Snapshot ที่ดีที่สุดและ Deploy เพื่อแก้ป๊อปอัพจาก SmartHeap Library

แก้ไขข้อผิดพลาด MEM_BAD_POINTER / SmartHeap Library Popup ตอนเริ่มต้น Windows

หมายเหตุ: จำไว้ว่าหลังดำเนินการ ทุกการเปลี่ยนแปลงหลังจากสร้าง Snapshot นั้นจะหายไป

หลัง Deploy Snapshot เรียบร้อย ให้รีบูทอีกครั้ง และดูว่าป๊อปอัพหายหรือไม่

หากยังเจอ MEM_BAD_POINTER ให้ไปวิธีสุดท้าย

วิธีที่ 5: Clean Boot เครื่องคอมพิวเตอร์

หากวิธีข้างต้นไม่ได้ผล ต้องพิจารณาว่าอาจมีการแทรกแซงของโปรแกรมบุคคลที่สาม หากไม่รู้ว่าตัวไหนเป็นสาเหตุ ให้เริ่มต้นที่ Clean Boot และปิดบริการ/รายการเริ่มต้นของบุคคลที่สามทั้งหมด

นี่จะยืนยันว่า MEM_BAD_POINTER เกิดจากแอปบุคคลที่สามหรือไม่ หากยืนยันแล้ว ให้เปิดใช้งานทีละรายการจนกว่าจะเจอ Error กลับมา

ขั้นตอนแบบละเอียด:

  1. กด Windows + R พิมพ์ msconfig กด Enter เปิด System Configurationแก้ไขข้อผิดพลาด MEM_BAD_POINTER / SmartHeap Library Popup ตอนเริ่มต้น Windows
  2. ไปแท็บ Services ติ๊ก Hide all Microsoft services หมายเหตุ: ทำอย่างนี้จะซ่อนบริการ Microsoft ที่จำเป็น ไม่ให้ปิดโดยผิดพลาด
  3. คลิก Disable all แล้ว Applyแก้ไขข้อผิดพลาด MEM_BAD_POINTER / SmartHeap Library Popup ตอนเริ่มต้น Windows
  4. ไปแท็บ Startup คลิก Open Task Managerแก้ไขข้อผิดพลาด MEM_BAD_POINTER / SmartHeap Library Popup ตอนเริ่มต้น Windows
  5. ใน Task Manager ปิด Startup ทุกอย่างที่ไม่ได้ลงนามโดย Microsoft Corporation (คลิกขวา Disable)แก้ไขข้อผิดพลาด MEM_BAD_POINTER / SmartHeap Library Popup ตอนเริ่มต้น Windows
  6. รีบูทเครื่องปกติ รอบูทเสร็จ
  7. ตอนบูทถัดไป เฝ้าดู MEM_BAD_POINTER หากไม่เกิดขึ้น แสดงว่าสาเหตุคือโปรแกรมบุคคลที่สาม ต่อไปให้เปิดใช้งานทีละรายการที่เคยปิด พร้อมรีสตาร์ทซ้ำ จนกว่าจะเจอ Error กลับมา
    หมายเหตุ: หาตัวทำให้เกิดปัญหาแล้ว ให้ลบแอปหลักออก หรือเก็บบริการ/รายการเริ่มต้นที่เป็นปัญหาไว้ปิด
  8. สุดท้าย หากแก้ได้ ให้เปิดใช้งานรายการที่เคยปิดทั้งหมด คืนค่าให้เครื่องไม่ Clean Boot ทุกครั้ง