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

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

หน้าต่างแจ้งข้อผิดพลาดว่าไม่พบไฟล์ DLL ใน Windows

อาการเมื่อ DLL ไม่พบใน Windows

ข้อความที่พบบ่อยมักระบุว่า “ไม่พบ DLL” “ไม่พบโมดูลที่ระบุ” “ไม่สามารถเริ่มโปรแกรมได้” หรือ “ไม่พบจุดเริ่มต้นของกระบวนการ” แอปอาจเปิดไม่ได้ ปิดทันทีหลังเริ่มทำงาน แสดงหน้าจอดำ หรือเริ่มมีปัญหาหลังอัปเดต

  • หากเสียเฉพาะโปรแกรมเดียว สาเหตุมักอยู่ในไฟล์หรือส่วนประกอบที่โปรแกรมนั้นต้องใช้
  • หากหลายโปรแกรมที่ไม่เกี่ยวข้องกันเสียพร้อมกัน อาจมีปัญหากับไฟล์ระบบ Windows หรือรันไทม์ที่ใช้ร่วมกัน
  • vcruntime*.dll และ msvcp*.dll มักเกี่ยวข้องกับ Visual C++ ส่วน d3dx*.dll และ xinput*.dll อาจเกี่ยวข้องกับส่วนประกอบ DirectX สำหรับเกม
  • รหัส 0xc000007b ไม่ได้ยืนยันว่าไฟล์หายเสมอไป เพราะอาจเกิดจากส่วนประกอบแบบ 32 บิตและ 64 บิตไม่เข้ากัน

การวินิจฉัยที่แม่นยำควรพิจารณาร่วมกันสามอย่าง ได้แก่ โปรแกรมใดได้รับผลกระทบ มีอะไรเปลี่ยนก่อนเกิดปัญหา และข้อความปรากฏระหว่างการทำงานใด

ตรวจวินิจฉัยอย่างรวดเร็ว: ควรเลือกวิธีใด

จดข้อความทั้งหมดและชื่อ DLL แล้วเลือกวิธีจากสถานการณ์จริง ไม่จำเป็นต้องทำทุกวิธีต่อเนื่องกัน

สถานการณ์ที่สังเกตได้บริเวณที่น่าจะมีปัญหาขั้นตอนถัดไป
เริ่มเกิดหลังอัปเดต Windows ไดรเวอร์ หรือติดตั้งซอฟต์แวร์การเปลี่ยนแปลงยังไม่สมบูรณ์หรือเข้ากันไม่ได้เริ่มจากวิธีที่ 1
มีเพียงโปรแกรมเดียวที่แจ้งข้อผิดพลาดไฟล์แอปหรือส่วนประกอบเฉพาะของแอปใช้วิธีที่ 2
เกมหรือโปรแกรมจากผู้พัฒนารายอื่นเปิดไม่ได้ไฟล์เกม, Visual C++, DirectX, .NET, OpenAL หรือ XInputใช้วิธีที่ 2 แล้วจึงใช้วิธีที่ 4 หากยังระบุแหล่งที่มาไม่ได้
หลายโปรแกรมที่ไม่เกี่ยวข้องกันเสียพร้อมกันส่วนประกอบร่วม หรือไฟล์ระบบ Windowsใช้วิธีที่ 3
ข้อความระบุชื่อ DLL แต่ไม่ทราบว่าเป็นของอะไรส่วนประกอบที่ยังไม่ได้ติดตั้ง ไฟล์แอป หรือไฟล์ระบบตรวจผู้เผยแพร่ตามวิธีที่ 1 หลังใช้วิธีทางการแล้วจึงพิจารณา Fionn DLL Fixer

วิธีที่ 1: ตรวจการเปลี่ยนแปลงและการอัปเดตล่าสุด

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

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

ขั้นตอนแก้ไข

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

ตรวจลำดับล่าสุดได้จาก คำแนะนำทางการสำหรับการติดตั้งการอัปเดต Windows อย่าถอนการอัปเดตความปลอดภัยโดยไม่มีหลักฐาน หากข้อผิดพลาดเกิดซ้ำกับการอัปเดตหนึ่งโดยเฉพาะ ให้จดหมายเลขรายการและติดต่อผู้พัฒนาแอป

วิธีตรวจสอบ

ทำสิ่งที่เคยทำให้เกิดข้อผิดพลาดสองครั้ง หากข้อความไม่กลับมาหลังเริ่มระบบใหม่และโปรแกรมอื่นไม่เสีย แสดงว่าการเปลี่ยนแปลงเสร็จสมบูรณ์ หากยังเสียเฉพาะแอปเดียว ให้ไปยังวิธีที่ 2

วิธีที่ 2: ซ่อมแอปและติดตั้งส่วนประกอบทางการ

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

ใช้เมื่อ DLL หายหรือโหลดไม่ได้ในโปรแกรมหรือเกมเพียงรายการเดียว วิธีนี้ยังเหมาะเมื่อข้อความกล่าวถึง Visual C++, DirectX, .NET, OpenAL หรือ XInput

ขั้นตอนแก้ไข

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

สำหรับ vcruntime*.dll และ msvcp*.dll ให้ตรวจข้อกำหนดของแอปและ หน้าแพ็กเกจ Microsoft Visual C++ อย่างเป็นทางการ หากยืนยันว่าเกี่ยวข้องกับ .NET ให้ใช้ แนวทางแก้ไข .NET Framework อย่างเป็นทางการ ส่วนประกอบ DirectX รุ่นเก่าควรมาจากแพ็กเกจเกมหรือแพ็กเกจทางการของ Microsoft ไม่ใช่ไฟล์ DLL เดี่ยว

วิธีตรวจสอบ

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

วิธีที่ 3: ซ่อมไฟล์ระบบด้วย DISM และ SFC

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

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

ขั้นตอนแก้ไข

  1. เปิดเทอร์มินัล Windows ด้วยสิทธิ์ผู้ดูแลระบบ
  2. เรียกใช้คำสั่งซ่อมอิมเมจ Windows:
    DISM.exe /Online /Cleanup-Image /RestoreHealth
  3. รอจนระบบแสดงผลว่าการดำเนินการเสร็จสิ้น
  4. เรียกใช้คำสั่งตรวจไฟล์ระบบ:
    sfc /scannow
  5. จดข้อความผลลัพธ์สุดท้ายจาก SFC
  6. เริ่มระบบคอมพิวเตอร์ใหม่

Microsoft แนะนำให้เรียกใช้ DISM ก่อน SFC ใน คู่มือการใช้เครื่องมือตรวจสอบไฟล์ระบบ

หน้าต่างคำสั่ง DISM สำหรับซ่อมแซมอิมเมจ Windows

วิธีตรวจสอบ

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

วิธีที่ 4: ตรวจสอบเพิ่มเติมด้วย Fionn DLL Fixer

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

ใช้เป็นทางเลือกเสริมหลังวิธีทางการ เมื่อยังไม่ทราบแหล่งที่มาของ DLL หรือต้องตรวจส่วนประกอบเกมหลายชุด เครื่องมือนี้ตรวจ DLL ที่หาย เสียหาย รุ่นไม่ตรงกัน และปัญหาเส้นทาง System32 รวมถึง DirectX, Visual C++, .NET, OpenAL และ XInput

ขั้นตอนแก้ไข

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

รุ่นฟรีแสดงสิทธิ์ทดลองฟรีสามครั้ง ส่วนสิทธิ์ซ่อม DLL, DirectX, รันไทม์ และระบบอยู่ใน VIP ควรตรวจข้อจำกัดนี้ก่อนเริ่มการซ่อมแซม

วิธีตรวจสอบ

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

รายการตรวจสอบหลังแก้ไข

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

หากข้อความเปลี่ยนไป ให้ถือว่าเป็นข้อมูลวินิจฉัยใหม่ อย่าทำวิธีเดิมซ้ำโดยอัตโนมัติ แต่ให้กลับไปเลือกวิธีจากตารางวินิจฉัย

ข้อผิดพลาดที่พบบ่อยเมื่อซ่อม DLL

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

สรุป

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

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

ดาวน์โหลดไฟล์ DLL ที่หายมาแยกต่างหากได้หรือไม่

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

จะทราบได้อย่างไรว่า DLL เป็นของโปรแกรมใด

เปรียบเทียบชื่อไฟล์กับชื่อหน้าต่างข้อผิดพลาด โฟลเดอร์ของโปรแกรม และเอกสารของผู้พัฒนา ชื่ออย่าง vcruntime, msvcp, d3dx หรือ xinput ช่วยบอกตระกูลส่วนประกอบ แต่ไม่แทนข้อกำหนดของแอปนั้น

เหตุใดหลังแก้ไขจึงปรากฏชื่อ DLL อื่น

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

จำเป็นต้องใส่ DLL ไว้ใน System32 หรือ SysWOW64 หรือไม่

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

เหตุใดต้องเริ่มระบบใหม่หลังซ่อม DLL

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