latest Post

Cách sử dụng Regsvr32 và khắc phục sự cố lỗi Regsvr32

Cách sử dụng Regsvr32 và khắc phục sự cố lỗi Regsvr32

  • Regsvr32 là một tiện ích dòng lệnh để đăng ký và hủy đăng ký các điều khiển OLE như DLL và ActiveX trong Windows Registry.
  • Regsvr32.exe có %systemroot%\System32  (Bản 32 bit) và  %systemroot%\SysWoW64\regsvr32.exe (Bản 64 bit) của Window
Cú pháp của lệnh Regsvr32: 
RegSvr32.exe có các tùy chọn dòng lệnh sau:
Regsvr32 [/u] [/n] [/i[:cmdline]] <dllname>

/u – Máy chủ chưa đăng ký 
/i - Gọi lệnh DllInstall truyền lệnh [cmdline] tùy chọn; khi được sử dụng với các lệnh gọi /u, lệnh này gỡ cài đặt dll 
/n – Không gọi lệnh DllRegisterServer; tuỳ chọn này phải được sử dụng với /i 
/s – Im lặng; hiển thị không có hộp thư
 
Giải pháp phổ biến cho lỗi Regsvr32:
  • Cách 1: Chạy lại Regsvr32 với quyền Admin

    Mở Command Prompt

    - Windows 8.1 and Windows 8: Search gõ Command Prompt, chuột phải vào Command Prompt trong hộp Search box, chọn Run as administrator. Nếu yêu cầu mật khẩu (administrator password) hoặc yêu cầu xã nhận (confirmation), gõ mật khẩu, hoặc click Allow.

    - Windows 7 and Windows Vista: StartCommand Prompt hoặc cmd trong ô Search box, click chuột phải vào Command Prompt, chọn Run as administrator tương tự Win 8.

    - Windows XP: login với tài khoản administrator sau đó mở Command Prompt window.
  • Cách 2: Sử dụng phiên bản Regsvr32 32 bit để đăng ký DLL 32 bit trên phiên bản Windows 64 bit

    Nếu có lỗi khi đăng ký DLL 32 bit trên phiên bản Windows 64 bit, hãy làm theo các bước sau:
- Mở Command Prompt
- Nếu DLL 32 bit ở trong thư mục %systemroot%\System32, hãy di chuyển nó đến thư mục %systemroot%\SysWoW64. 
- Chạy lệnh sau: %systemroot%\SysWoW64\regsvr32 <đường dẫn đầy đủ của DLL>

Thông báo lỗi Regsvr32

Các thông báo lỗi Regsvr32 trong Windows Vista và các phiên bản Windows mới hơn

Bảng sau chứa các thông báo lỗi RegSvr32 và các nguyên nhân có thể:
Thông báo lỗiNguyên nhân
Dấu hiệu lệnh ""%1"" không hợp lệ. Hãy xem lại cách sử dụng lệnh và thử lại.Kết hợp các tuỳ chọn không hợp lệ được chuyển vào dòng lệnh tới regsvr32.exe.
Lệnh này chỉ hợp lệ nếu dự án Microsoft Visual Studio OLE Activex Control được mở.Regsvr32.exe được gọi ra bởi Visual Studio nhưng không có mô-đun nào được chỉ định trong dòng lệnh.
Để đăng ký mô-đun, bạn phải cung cấp tên nhị phân.Regsvr32.exe bị huỷ mà không chỉ định bất kỳ mô-đun nào trong dòng lệnh.
Lệnh OleInitialize không chạy được. Dung lượng bộ nhớ máy tính của bạn có thể còn quá ít. Đóng mọi chương trình đang mở rồi thử lại.Regsvr32 phải khởi tạo thư viện COM trước khi có thể gọi các chức năng thư viện COM cần thiết và hủy khởi tạo thư viện khi regsvr32 tắt. Các thông báo lỗi này sẽ xuất hiện nếu lần khởi tạo hoặc hủy khởi tạo thư viện COM không thành công.
Không tải được mô-đun ""%1"".\n\n Đảm bảo nhị phân được lưu ở đường dẫn được chỉ định hoặc gỡ lỗi thư viện để kiểm tra sự cố với tệp .DLL nhị phân hoặc phụ thuộc.\n\n%2.Đã xảy ra lỗi khi tải mô-đun được chỉ định trong dòng lệnh. Văn bản lỗi được hiển thị dưới dạng một phần của thông báo.
Mô-đun ""%1"" được tải nhưng không tìm thấy điểm nhập %2.\n\nĐảm bảo rằng ""%1"" là tệp DLL hoặc OCX hợp lệ, sau đó thử lạiRegsvr32.exe không thể tìm thấy điểm nhập bắt buộc trong mô-đun được chỉ định trong dòng lệnh. Điều này có thể xảy ra nếu các điểm nhập không được xuất đúng cách từ mô-đun hoặc nếu mô-đun không phải là tệp .DLL hoặc .OCX.
Mô-đun ""%1"" được tải nhưng lệnh tới %2 không thành công với mã lỗi %3.\n\nĐể biết thêm thông tin về sự cố này, hãy tìm kiếm trực tuyến bằng cách sử dụng mã lỗi làm cụm từ tìm kiếm.Đã xảy ra lỗi khi regsvr32.exe hủy điểm nhập trong mô-đun được chỉ định trong dòng lệnh. Mã lỗi được hiển thị dưới dạng một phần của thông báo.
Mô-đun ""%1"" có thể không tương thích với phiên bản Windows mà bạn đang chạy. Kiểm tra xem mô-đun có tương thích với phiên bản regsvr32.exe x86 (32 bit) hoặc x64 (64 bit) hay không.Lỗi này có thể xảy ra, chẳng hạn như nếu regsvr32.exe được chạy trên máy tính x86 và mô-đun được chỉ định trong dòng lệnh là mô-đun 64 bit.

Các thông báo lỗi Regsvr32.exe trong Windows XP

Bảng sau chứa các thông báo lỗi RegSvr32 và các nguyên nhân có thể:
Thông báo lỗiNguyên nhân
Dấu hiệu không được nhận dạng: /invalid_flagBạn đã nhập một loạt các dấu hiệu hoặc chuyển đổi không hợp lệ.
Không tên DLL nào được chỉ định.Bạn đã không bao gồm tên tệp .dll.
Dll_Name được tải nhưng không tìm thấy điểm nhập DllRegisterServer hoặc DllUnregisterServer.Tên Dll đã chỉ định không phải là tệp .dll hoặc .ocx. Ví dụ: việc nhập regsvr32 wjview.exe sẽ tạo ra thông báo lỗi này.
Dll_Name không phải là tệp thực thi và không có trình trợ giúp đăng ký nào được đăng ký cho loại tệp này.Tên Dll đã chỉ định không phải là tệp thực thi (.exe, .dll hoặc .ocx). Ví dụ: việc nhập regsvr32 autoexec.bat sẽ tạo ra thông báo lỗi này.
Dll_Name không thể tự đăng ký hoặc phiên bản bị lỗi có trong bộ nhớ.Ví dụ: nhập regsvr32, icwdial.dll trả lại thông báo lỗi này vì tệp Icwdial.dll không thể tự đăng ký. Nếu bạn nghi ngờ có phiên bản lỗi của Dllname trong bộ nhớ, hãy thử khởi động lại máy tính của bạn hoặc trích xuất lại phiên bản gốc của tệp.
OleInitialize không thành công (hoặc OleUninitialize không thành công)Regsvr32 phải khởi tạo thư viện COM trước khi có thể gọi các chức năng thư viện COM cần thiết và hủy khởi tạo thư viện khi regsvr32 tắt. Các thông báo lỗi này xảy ra nếu lần khởi tạo hoặc huỷ khởi tạo thư viện COM không thành công. Ví dụ: tệp Ole32.dll có thể bị lỗi hoặc có thể là phiên bản không đúng.
LoadLibrary("Dll_Name") không thành công. GetlastError trả lại 0x00000485Từ Winerror.h, 0x00000485 = 1157 (ERROR_DLL_NOT_FOUND). Thông báo này nghĩa là "Không thể tìm thấy một trong các tệp thư viện cần thiết để chạy ứng dụng này". Ví dụ: nhập regsvr32 missing.dll trả lại thông báo lỗi này vì không tìm thấy tệp Missing.dll.
LoadLibrary("Dll_Name") không thành công. GetLastError trả lại 0x00000002Từ Winerror.h, 0x00000002 = 2 (ERROR_FILE_NOT_FOUND). Thông báo này nghĩa là "Hệ thống không thể tìm thấy tệp đã chỉ định". Nói cách khác, không tìm thấy DLL phụ thuộc. Ví dụ: nhập regsvr32 icwdial.dll với Tapi32.dll (tệp phụ thuộc) bị thiếu sẽ trả lại thông báo lỗi này..
LoadLibrary("dskmaint.dll") không thành công. GetLastError trả lại 0x000001fTừ Winerror.h, 0x000001f = 31 (ERROR_GEN_FAILURE). Thông báo này nghĩa là "Thiết bị gắn vào hệ thống không hoạt động". Thông báo này có thể xảy ra nếu bạn cố đăng ký tệp Win16 .dll. Ví dụ: nhập regsvr32 dskmaint.dll trả lại thông báo lỗi này.
DllRegisterServer (hoặc DllUnregisterServer) trong Dll_Name không thành công. Mã trả lại là: stringTìm kiếm trong tệp Winerror.h chuỗi được chỉ định trong thông báo.

About miniflash

miniflash
Recommended Posts × +

0 comments:

Đăng nhận xét

Recent Comments Widget
loading...