ข้อผิดพลาดไม่พบจุดเข้าของ DLL: 4 วิธีแก้อย่างปลอดภัยบน Windows

บทนำ

ข้อความข้อผิดพลาดไม่พบจุดเข้าของ DLL มักหมายความว่าโปรแกรมพบไฟล์ DLL แล้ว แต่ไฟล์นั้นไม่มีโพรซีเยอร์ที่โปรแกรมต้องการ สาเหตุจึงมักเป็นไฟล์ของแอปเสียหายหรือ DLL คนละเวอร์ชัน มากกว่าการไม่มีไฟล์เลย บทความนี้เรียง 4 วิธีจากความเสี่ยงต่ำไปสูง ได้แก่ รีสตาร์ตและซ่อมแอป ติดตั้งแอปใหม่ ซ่อมส่วนประกอบ Windows และสแกนแบบมีตัวช่วย ก่อนเริ่ม ให้บันทึกชื่อโพรซีเยอร์ ชื่อ DLL และพาธทั้งหมดจากกล่องข้อความ เพราะข้อมูลเหล่านี้ใช้แยกว่าปัญหาอยู่ที่แอปหรือระบบ

หน้าต่างแจ้งข้อผิดพลาดไม่พบจุดเข้าของ DLL บน Windows

อาการที่พบ

กล่องข้อความมักระบุว่าไม่พบจุดเข้าของโพรซีเยอร์ในไลบรารีลิงก์แบบไดนามิก แถบชื่ออาจแสดงชื่อโปรแกรมที่เปิดไม่สำเร็จ และข้อความควรระบุชื่อโพรซีเยอร์กับไฟล์ DLL บางครั้งจะแสดงพาธแบบเต็มด้วย

  • แอปหรือเกมเพียงรายการเดียวเปิดไม่ขึ้น แต่ Windows ยังใช้งานได้ตามปกติ
  • ข้อผิดพลาดเริ่มหลังติดตั้งหรืออัปเดตแอปนั้น
  • เฉพาะฟังก์ชันบางส่วนใช้งานไม่ได้ เพราะ DLL ถูกโหลดเมื่อเรียกฟังก์ชันดังกล่าว
  • หลายโปรแกรมที่ไม่เกี่ยวข้องกันเปิดไม่ขึ้น ซึ่งชี้ไปที่ส่วนประกอบ Windows มากกว่าการติดตั้งแอปเพียงรายการเดียว

Microsoft อธิบายว่าโปรแกรมเรียกใช้ฟังก์ชันที่ DLL ส่งออก และชื่อฟังก์ชันต้องตรงกันทุกอักขระ ดังนั้นข้อผิดพลาดเรื่องจุดเข้าจึงต่างจากข้อความว่าไม่พบ DLL ดูพฤติกรรมพื้นฐานได้จาก เอกสารอย่างเป็นทางการเกี่ยวกับ GetProcAddress

รายการวินิจฉัยด่วนเมื่อเกิดข้อผิดพลาดไม่พบจุดเข้าของ DLL

  • มีปัญหาเพียงแอปเดียวหลังอัปเดตแอป: เริ่มที่วิธีที่ 1
  • มีปัญหาเพียงแอปเดียวและพาธ DLL อยู่ในโฟลเดอร์ติดตั้งของแอป: ใช้วิธีที่ 2 หากการซ่อมแอปไม่สำเร็จ
  • หลายแอปมีปัญหา หรือพาธชี้ไปยังโฟลเดอร์ระบบของ Windows: ใช้วิธีที่ 3
  • ยังระบุสาเหตุไม่ได้หลังใช้วิธีที่ระบบและผู้เผยแพร่รองรับ: พิจารณาการสแกนแบบมีตัวช่วยในวิธีที่ 4

วิธีที่ 1: รีสตาร์ต อัปเดต หรือซ่อมแอปที่มีปัญหา

ควรใช้เมื่อใด

ใช้วิธีความเสี่ยงต่ำนี้เมื่อมีปัญหาเพียงแอปเดียว โดยเฉพาะหลังการติดตั้งหรืออัปเดตถูกขัดจังหวะ

ขั้นตอน

  1. ถ่ายภาพหรือจดข้อความทั้งหมด รวมชื่อโพรซีเยอร์ DLL และพาธ
  2. รีสตาร์ต Windows แล้วเปิดแอปเดิมอีกครั้งรีสตาร์ต Windows ก่อนทดสอบแอปที่มีข้อผิดพลาดอีกครั้ง
  3. เปิด การตั้งค่า > แอป > แอปที่ติดตั้ง เลือกตัวเลือกขั้นสูงของแอป แล้วเลือก ซ่อมแซม หากมีตัวเลือกนี้
  4. ตรวจหาอัปเดตที่เข้ากันได้ผ่านตัวอัปเดตของแอปหรือเว็บไซต์ผู้เผยแพร่เดิม

โปรแกรมบางรายการไม่มีตัวเลือกซ่อมแซม Microsoft แสดงเส้นทางที่ใช้ได้ทั้งในหน้าการตั้งค่าและแผงควบคุมไว้ใน คำแนะนำการซ่อมแอปและโปรแกรมใน Windows

วิธีตรวจสอบผล

เปิดฟังก์ชันเดิมที่ทำให้เกิดข้อผิดพลาด ผลสำเร็จคือข้อความที่ระบุโพรซีเยอร์และ DLL เดิมไม่ปรากฏอีก และฟังก์ชันทำงานได้

วิธีที่ 2: ติดตั้งแอปที่มีปัญหาใหม่จากแหล่งเดิม

ควรใช้เมื่อใด

ติดตั้งใหม่เมื่อปัญหาจำกัดอยู่ที่โปรแกรมเดียว หรือข้อความระบุ DLL ในโฟลเดอร์ของโปรแกรม การติดตั้งใหม่ช่วยคืนชุดไฟล์แอปที่เป็นรุ่นเดียวกัน

ขั้นตอน

  1. สำรองเอกสาร โครงการที่บันทึกไว้ และการตั้งค่าเฉพาะแอปที่ไม่ได้ซิงค์
  2. ถอนการติดตั้งแอปผ่าน การตั้งค่า > แอป > แอปที่ติดตั้ง
  3. รีสตาร์ต Windows เพื่อปล่อยไฟล์ที่ยังถูกใช้งาน
  4. ติดตั้งแอปจากผู้เผยแพร่เดิมหรือหน้ารายการใน Microsoft Store
  5. ทดสอบการติดตั้งใหม่ก่อนนำส่วนขยายหรือไฟล์ดัดแปลงกลับมา

วิธีตรวจสอบผล

เปิดแอปที่ติดตั้งใหม่สองครั้ง แล้วทำขั้นตอนที่เคยล้มเหลวซ้ำ หากยังไม่พบโพรซีเยอร์เดิม ให้เก็บกล่องข้อความไว้ส่งนักพัฒนา เพราะรุ่นที่ติดตั้งอาจต้องการอินเทอร์เฟซ DLL คนละรุ่น

วิธีที่ 3: ซ่อมส่วนประกอบ Windows ที่ได้รับการป้องกันด้วย DISM และ SFC

ควรใช้เมื่อใด

ใช้เครื่องมือในตัวเมื่อหลายแอปที่ไม่เกี่ยวข้องกันมีปัญหา ฟังก์ชันของ Windows ทำงานผิดปกติ หรือพาธ DLL อยู่ในโฟลเดอร์ระบบ DISM ซ่อมอิมเมจ Windows ที่ใช้เป็นแหล่งไฟล์ ส่วน SFC ตรวจไฟล์ระบบที่ได้รับการป้องกัน

ขั้นตอน

  1. ค้นหา พร้อมท์คำสั่ง แล้วเลือก เรียกใช้ในฐานะผู้ดูแลระบบเปิดพร้อมท์คำสั่งในฐานะผู้ดูแลระบบบน Windows
  2. เรียกคำสั่งซ่อมอิมเมจ Windows:
    DISM.exe /Online /Cleanup-image /Restorehealth
              
    เรียกคำสั่ง DISM RestoreHealth เพื่อซ่อมอิมเมจ Windows
  3. รอจน DISM แจ้งว่าการดำเนินการเสร็จสมบูรณ์
  4. เรียกตัวตรวจสอบไฟล์ระบบ:
    sfc /scannow
              
  5. รอให้การตรวจสอบถึง 100% แล้วรีสตาร์ต Windows

ลำดับคำสั่งและความหมายของผลลัพธ์อ้างอิงจาก คำแนะนำการใช้ตัวตรวจสอบไฟล์ระบบของ Microsoft

วิธีตรวจสอบผล

ทดสอบอย่างน้อยสองโปรแกรมที่เคยมีปัญหา หาก SFC ไม่พบการละเมิดความสมบูรณ์ แต่ยังเหลือปัญหาเพียงแอปเดียว ให้กลับไปใช้วิธีที่ 2 หรือติดต่อผู้พัฒนาแอป

หากวิธีที่ระบบและผู้เผยแพร่รองรับยังไม่ช่วยแยกสาเหตุ Fionn DLL Fixer เป็นทางเลือกสำหรับสแกน DLL ที่สูญหาย เสียหาย เวอร์ชันไม่ตรงกัน หรือมีปัญหาเกี่ยวกับพาธ System32

วิธีที่ 4: ใช้ Fionn DLL Fixer เพื่อช่วยสแกนและซ่อมแซม

ควรใช้เมื่อใด

ใช้หลังจากลองวิธีของ Windows และวิธีเฉพาะแอปแล้ว เมื่อต้องการสแกนแบบมีตัวช่วยและตรวจซ้ำหลังซ่อม ผลลัพธ์ยังต้องยืนยันด้วยการเปิดโปรแกรมที่มีปัญหา

ขั้นตอน

  1. เปิด Fionn DLL Fixer โปรแกรมจะสแกนพีซีหา DLL และปัญหาระบบโดยอัตโนมัติ แล้วแสดงรายการที่ตรวจพบเมื่อสแกนเสร็จเปิด Fionn DLL Fixer และดูผลการสแกน DLL กับปัญหาระบบ
  2. เมื่อสแกนเสร็จ ให้คลิกปุ่ม “ซ่อมแซม” เพื่อเริ่มแก้ปัญหา DLL และระบบที่ตรวจพบโดยอัตโนมัติคลิกปุ่มซ่อมแซมหลัง Fionn DLL Fixer สแกนเสร็จ
  3. รอระหว่างการซ่อมแซม ปุ่มจะแสดงสถานะ “กำลังแก้ไข” จนกระบวนการเสร็จรอให้ Fionn DLL Fixer ดำเนินการซ่อมแซมจนเสร็จ
  4. เมื่อซ่อมเสร็จ ให้คลิก “ตกลง” ในกล่องยืนยัน หากระบบแจ้ง ให้รีสตาร์ตคอมพิวเตอร์ก่อนตรวจสอบปัญหายืนยันเมื่อ Fionn DLL Fixer ซ่อมเสร็จและรีสตาร์ตหากได้รับแจ้ง
  5. หากยังมีปัญหาหลังรีสตาร์ต ให้คลิก “ตรวจสอบอีกครั้ง” เพื่อสแกนใหม่ และเลือก “ซ่อมแซม” อีกครั้งเมื่อพบปัญหาใหม่ตรวจสอบอีกครั้งด้วย Fionn DLL Fixer หากข้อผิดพลาดยังคงอยู่

วิธีตรวจสอบผล

เรียกการตรวจสอบอีกครั้ง จากนั้นเปิดแอปที่มีปัญหาและทำขั้นตอนเดิมซ้ำ การสแกนเสร็จเพียงอย่างเดียวไม่ได้ยืนยันว่าข้อผิดพลาดของแอปหายแล้ว

รายการตรวจสอบผลการแก้ไข

รายการตรวจผลลัพธ์ที่สังเกตได้หากไม่ผ่านควรทำอะไรต่อ
กล่องข้อผิดพลาดข้อความที่ระบุโพรซีเยอร์และ DLL เดิมไม่ปรากฏเปรียบเทียบข้อความใหม่กับภาพหรือบันทึกเดิม
การเปิดแอปแอปเปิดและทำงานต่อเนื่องเลือกวิธีตามตำแหน่งพาธ DLL ที่แสดง
ฟังก์ชันที่เคยล้มเหลวทำคำสั่งเดิมได้จนเสร็จส่งขั้นตอนทำซ้ำปัญหาให้นักพัฒนาแอป
ขอบเขตระบบแอปอื่นที่เคยมีปัญหาก็เปิดได้ตรวจข้อความผลลัพธ์จาก DISM และ SFC

บทสรุป

เริ่มจากบันทึกข้อความข้อผิดพลาดไม่พบจุดเข้าของ DLL ให้ครบ แล้วแยกว่าปัญหาเกิดกับแอปเดียวหรือหลายส่วนของ Windows หากเกิดกับแอปเดียว ให้ซ่อมหรืออัปเดตก่อน แล้วติดตั้งใหม่เมื่อไฟล์ในโฟลเดอร์แอปไม่ตรงกัน ใช้ DISM ตามด้วย SFC เมื่อหลายโปรแกรมหรือส่วนประกอบระบบมีปัญหา ส่วน Fionn DLL Fixer เป็นทางเลือกเสริมหลังการตรวจเหล่านี้ การยืนยันผลต้องเปิดแอปและทำงานเดิมซ้ำ หากยังพบโพรซีเยอร์เดิม ให้ส่งชื่อ DLL พาธ และวิธีที่ลองแล้วแก่นักพัฒนาหรือฝ่ายสนับสนุนอย่างเป็นทางการ

คำถามที่พบบ่อย

ข้อผิดพลาดเรื่องจุดเข้าเหมือนกับ DLL สูญหายหรือไม่

ไม่เหมือนกัน ข้อผิดพลาด DLL สูญหายหมายถึง Windows หาไลบรารีไม่พบ ส่วนข้อผิดพลาดจุดเข้ามักหมายถึงโปรแกรมพบ DLL แต่หาโพรซีเยอร์ที่คาดไว้ไม่เจอ จึงควรคืนชุดไฟล์ที่เข้ากันได้แทนการค้นหาไฟล์ชื่อเดียวกันมาใส่

เหตุใดข้อผิดพลาดจึงเกิดกับโปรแกรมเดียว

โปรแกรมอาจโหลด DLL ส่วนตัวจากโฟลเดอร์ของตนก่อนตำแหน่งอื่นใน Windows สำเนานั้นอาจไม่ใช่รุ่นที่โปรแกรมต้องการ การซ่อมแอปหรือติดตั้งใหม่แบบสะอาดจึงตรงจุดกว่าการเปลี่ยนไฟล์ระบบ

ควรแทนที่ DLL ที่ระบุด้วยตนเองหรือไม่

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

ควรเรียก SFC เมื่อใด

เรียก SFC หลัง DISM เมื่อหลายแอปมีปัญหา ฟังก์ชัน Windows ผิดปกติ หรือพาธชี้ไปยังตำแหน่งระบบที่ได้รับการป้องกัน หากเสียเพียงแอปเดียวและ SFC ไม่พบปัญหาความสมบูรณ์ ให้ตรวจการติดตั้งของแอปนั้น

ควรส่งข้อมูลอะไรให้นักพัฒนาแอป

ส่งรุ่นโปรแกรม รุ่น Windows ชื่อโพรซีเยอร์เต็ม ชื่อและพาธ DLL เวลาที่เริ่มเกิดปัญหา และวิธีแก้ทั้งหมดที่ลองแล้ว ภาพหน้าจอช่วยเก็บตัวพิมพ์ใหญ่เล็กและเครื่องหมายวรรคตอนที่อาจสำคัญต่อการระบุฟังก์ชันที่ DLL ส่งออก