ต้องรู้
- ในการลงทะเบียนไฟล์ DLL myfile.dll ให้ป้อน regsvr32 myfile.dll และหากต้องการยกเลิกการลงทะเบียน ให้พิมพ์ r egsvr32 /u myfile.dllในบรรทัดคำสั่ง
- หากคุณได้รับข้อผิดพลาดเมื่อพยายามลงทะเบียนไฟล์ DLL คุณอาจไม่มีสิทธิ์ที่ถูกต้องหรือไฟล์อาจถูกบล็อก
- ข้อผิดพลาดอื่นๆ อาจเกิดจากการขาดการพึ่งพา ถ้าใช่ ให้ใช้ Dependency Walker เพื่อดูการขึ้นต่อกันทั้งหมดที่ไฟล์ DLL ต้องการ
บทความนี้อธิบายวิธีใช้เครื่องมือบรรทัดคำสั่ง regsvr32 ใน Windows และวิธีแก้ไขข้อผิดพลาด regsvr32 บางอย่าง Regsvr32 ใช้เพื่อลงทะเบียนและยกเลิกการลงทะเบียนการควบคุม Object Linking and Embedding (OLE) เช่น ไฟล์ DLL และ ActiveX Controlไฟล์ OCX คุณอาจต้องลงทะเบียนไฟล์ DLL หากคุณเห็นข้อผิดพลาด DLL บนคอมพิวเตอร์ของคุณ
วิธีการลงทะเบียนและยกเลิกการลงทะเบียนไฟล์ DLL
หากการอ้างอิงใน Windows Registry ที่อ้างถึงไฟล์ DLL ถูกลบออกหรือเสียหาย โปรแกรมที่จำเป็นต้องใช้ไฟล์ DLL นั้นอาจหยุดทำงาน เมื่อการเชื่อมโยงนี้กับรีจิสทรีเสียหายจึงควรลงทะเบียนไฟล์ DLL
การลงทะเบียนไฟล์ DLL ทำได้โดยการติดตั้งโปรแกรมที่ลงทะเบียนไว้ตั้งแต่แรก อย่างไรก็ตาม บางครั้งคุณอาจต้องลงทะเบียนไฟล์ DLL ด้วยตนเองผ่าน Command Prompt
ดูบทแนะนำเกี่ยวกับวิธีเปิด Command Prompt หากคุณไม่แน่ใจว่าจะหาได้อย่างไร
นี่คือวิธีที่ถูกต้องในการจัดโครงสร้างคำสั่ง regsvr32:
regsvr32 [/u] [/n] [/i[:cmdline]
ตัวอย่างเช่น คุณต้องป้อนคำสั่งแรกนี้เพื่อลงทะเบียนไฟล์ DLL ชื่อ myfile.dll หรือคำสั่งที่สองเพื่อยกเลิกการลงทะเบียน:
regsvr32 myfile.dll
regsvr32 /u myfile.dll
ไม่สามารถลงทะเบียน DLL ทั้งหมดได้เพียงแค่ป้อนคำสั่งด้านบนลงใน Command Prompt คุณอาจต้องปิดบริการหรือโปรแกรมที่ใช้ไฟล์ก่อน
วิธีแก้ไขข้อผิดพลาด Regsvr32 ทั่วไป
นี่คือข้อผิดพลาดอย่างหนึ่งที่คุณอาจเห็นเมื่อพยายามลงทะเบียนไฟล์ DLL:
โมดูลถูกโหลดแล้ว แต่การเรียกไปยัง DllRegisterServer ล้มเหลวโดยมีรหัสข้อผิดพลาด 0x80070005
นี้มักจะเป็นปัญหาการอนุญาต หากการเรียกใช้พรอมต์คำสั่งที่ยกระดับแล้วยังไม่ให้คุณลงทะเบียนไฟล์ DLL ไฟล์นั้นอาจถูกบล็อก ตรวจสอบส่วนความปลอดภัยของแท็บทั่วไปในหน้าต่างคุณสมบัติของไฟล์
ปัญหาที่เป็นไปได้อีกอย่างหนึ่งคือคุณไม่มีสิทธิ์ที่ถูกต้องในการใช้ไฟล์
ข้อความแสดงข้อผิดพลาดที่คล้ายกันมีคำเหมือนด้านล่าง ข้อผิดพลาดนี้โดยทั่วไปหมายความว่า DLL ไม่ได้ถูกใช้เป็น COM DLL สำหรับแอปพลิเคชันใดๆ บนคอมพิวเตอร์ ซึ่งหมายความว่าไม่จำเป็นต้องลงทะเบียน
โมดูลถูกโหลดแล้ว แต่ไม่พบ DllRegisterServer จุดเริ่มต้น
นี่คือข้อความแสดงข้อผิดพลาด regsvr32 อีกอัน:
โมดูลไม่สามารถโหลดได้ ตรวจสอบให้แน่ใจว่าไบนารีถูกเก็บไว้ที่พาธที่ระบุหรือดีบักมันเพื่อตรวจสอบปัญหาเกี่ยวกับไบนารีหรือไฟล์. DLL ที่ขึ้นต่อกัน ไม่พบโมดูลที่ระบุ
ข้อผิดพลาดนั้นอาจเกิดจากการขาดการพึ่งพา ในกรณีนี้คุณสามารถใช้ Dependency Walker เพื่อดูรายการการขึ้นต่อกันทั้งหมดที่ไฟล์ DLL ต้องการ เนื่องจากไฟล์หนึ่งอาจขาดหายไปตามลำดับ เพื่อให้ DLL ลงทะเบียนอย่างถูกต้อง
นอกจากนี้ ตรวจสอบให้แน่ใจว่าเส้นทางไปยังไฟล์ DLL นั้นสะกดถูกต้อง ไวยากรณ์ของคำสั่งมีความสำคัญมาก อาจเกิดข้อผิดพลาดหากป้อนไม่ถูกต้อง
ไฟล์ DLL บางไฟล์อาจต้องมีตำแหน่งอยู่ในเครื่องหมายคำพูดดังนี้:
"C:\Users\Admin User\Programs\myfile.dll"
Regsvr32.exe เก็บไว้ที่ไหน
Windows รุ่น 32 บิต (XP และใหม่กว่า) เพิ่มเครื่องมือ Microsoft Register Server ลงในโฟลเดอร์นี้เมื่อติดตั้ง Windows ครั้งแรก: %systemroot%\System32\.
Windows เวอร์ชัน 64 บิตจะจัดเก็บไฟล์ regsvr32.exe ไม่เพียงแต่ในนั้น แต่ยังรวมถึงที่นี่ด้วย: %systemroot%\SysWoW64\