Các điều khiển OLE, chẳng hạn như tệp Điều khiển DLL hoặc ActiveX (OCX), phải được đăng ký. Việc đăng ký điều khiển OLE sẽ cập nhật sổ đăng ký của Windows với vị trí và khả năng của tệp sao cho chương trình chạy đúng cách.
Để giúp khắc phục một số sự cố với Windows, Microsoft Internet Explorer hoặc các chương trình khác, bạn có thể sử dụng công cụ Regsvr32 (Regsvr32.exe) để đăng ký và huỷ đăng ký các điều khiển OLE.
Ví dụ: bài viết sau đây trong Cơ sở Kiến thức Microsoft yêu cầu bạn sử dụng Regsvr32.exe để huỷ đăng ký điều khiển Wuv3is.dll trước khi bạn cài đặt lại điều khiển này từ trang web Windows Update:
241122
(http://support.microsoft.com/kb/241122/vi-vn/
)
Lỗi ứng dụng khi bạn bấm vào Bản cập nhật Sản phẩm
Nếu quá trình đăng ký điều khiển không thành công hoặc bạn muốn biết thông tin của nhà phát triển về cách khắc phục sự cố đăng ký điều khiển OLE không thành công, hãy xem bài viết trong Cơ sở Kiến thức Microsoft
140346
(http://support.microsoft.com/kb/140346/vi-vn/
)
Các lý do có thể khiến việc đăng ký điều khiển OLE không thành công
Regsvr32.exe đi kèm với Microsoft Internet Explorer 3.0 hoặc các phiên bản mới hơn, Windows 95 OEM Phiên bản Dịch vụ 2 (OSR2) hoặc các phiên bản mới hơn và Windows NT 4.0 Gói Dịch vụ 5 (SP5) hoặc các phiên bản mới hơn. Regsvr32.exe được cài đặt trong thư mục Hệ thống (Windows Millennium Edition/Windows 98/Windows 95) hoặc thư mục System32 folder (Windows NT/Windows XP/Windows Vista/Windows 7).
Thu g?n h?nh ?nh nàyBung r?ng h?nh ?nh này
Chú ý Trong phiên bản 64 bit của hệ điều hành Windows, có hai phiên bản của tệp Regsv32.exe:
- Phiên bản 64 bit là %systemroot%\System32\regsvr32.exe.
- Phiên bản 32 bit là %systemroot%\SysWoW64\regsvr32.exe.
Sử dụng Regsvr32.exe
RegSvr32.exe có các tuỳ chọn dòng lệnh sau:
Click here to show/hide solution
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] tuỳ 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; không hiển thị hộp thông báo nào (được thêm vào Windows XP và Windows Vista)
Khi bạn sử dụng Regsvr32.exe, lệnh này cố gắng tải cấu phần và gọi hàm
DLLSelfRegister. Nếu lần thử này thành công, Regsvr32.exe hiển thị hộp thoại cho biết thành công. Nếu lần thử không thành công, Regsvr32.exe trả lại thông báo lỗi. Thông báo lỗi này có thể bao gồm mã lỗi Win32.
Để biết thêm thông tin, hãy bấm vào số bài viết sau để xem bài viết trong Cơ sở Kiến thức Microsoft:
193625
(http://support.microsoft.com/kb/193625/vi-vn/
)
Các mã lỗi WinInet (12001 tới 12156)
Ví dụ: để đăng ký điều khiển Sample.ocx ActiveX theo cách thủ công, nhập lệnh sau tại dấu nhắc lệnh:
c:\regsvr32.exe sample.ocx
Các thông báo lỗi Regsvr32.exe trong Windows Vista và phiên bản mới hơn
Danh sách sau chứa các thông báo lỗi RegSvr32 và các nguyên nhân có thể:
Click here to show/hide solution
- 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ở và sau đó 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à huỷ khởi tạo thư viện khi 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.
- 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ại
Regsvr32.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 huỷ đ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 x86 (32 bit) hoặc x64 (64 bit) của regsvr32.exe 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 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 các phiên bản Windows cũ hơn Windows Vista
Danh sách sau chứa các thông báo lỗi RegSvr32 và các nguyên nhân có thể:
Click here to show/hide solution
- Dấu hiệu không được nhận dạng: /invalid_flag
Bạn đã nhập kết hợp dấu hiệu hoặc khoá chuyển đổi không hợp lệ (tham khảo phần "Sử dụng Regsvr32.exe" trong bài viết này).
- Không tên DLL nào được chỉ định.
Bạn không bao gồm tên tệp .dll (tham khảo phần "Sử dụng Regsvr32.exe" trong bài viết này).
- 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ụ: gõ regsvr32, wjview.exe tạo ra thông báo lỗi này.
- Dll_Name không phải là tệp thi hành 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 thi hành (.exe, .dll hoặc .ocx). Ví dụ: gõ regsvr32, autoexec.bat tạo ra thông báo lỗi này.
- 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 có thể không xuất được hoặc phiên bản bị lỗi của tên Dll đã chỉ định có thể ở trong bộ nhớ. Xem xét việc sử dụng Pview để phát hiện tệp và xoá tệp.
- Dll_Name không thể tự đăng ký hoặc phiên bản lỗi trong bộ nhớ.
Ví dụ: gõ 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. Nếu bạn đang chạy Windows NT, bạn có thể phải sử dụng công cụ Kill hoặc Pview trong Bộ Tài nguyên Microsoft Windows NT Server 4.0. Để biết thêm thông tin, hãy xem bài viết 197155
trong Cơ sở Kiến thức Microsoft: Cách huỷ quy trình đơn lẻ
(http://support.microsoft.com/kb/197155/vi-vn)
- 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à huỷ khởi tạo thư viện khi 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 sai.
- LoadLibrary("Dll_Name") không thành công. GetlastError trả lại 0x00000485
Từ 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ụ: gõ regsvr32 missing.dll trả lại thông báo lỗi này nếu không tìm thấy tệp Missing.dll.
- LoadLibrary("Dll_Name") không thành công. GetLastError trả lại 0x00000002
Từ 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ụ: gõ regsvr32 icwdial.dll với Tapi32.dll (tệp phụ thuộc) bị thiếu, trả lại thông báo lỗi này.
- LoadLibrary("dskmaint.dll") không thành công. GetLastError trả lại 0x000001f
Từ 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ụ: gõ 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à: string
Tìm kiếm trong tệp Winerror.h chuỗi được chỉ định trong thông báo.
ID c?a bài: 249873 - L?n xem xét sau cùng: 31 Tháng Mười 2012 - Xem xét l?i: 3.0
Áp d?ng
- Windows Vista Enterprise
- Windows Vista Business
- Windows Vista Business N 64-bit Edition
- Windows Vista Home Basic
- Windows Vista Home Basic N
- Windows Vista Home Basic N 64-bit Edition
- Windows Vista Home Premium
- Windows Vista Starter
- Windows Vista Ultimate
- Windows Vista Business N
- Windows Vista Business 64-bit edition
- Microsoft Windows XP Home Edition
- Microsoft Windows XP Media Center Edition 2005 Update Rollup 2
- Microsoft Windows XP Professional
- Microsoft Windows XP Professional N
- Microsoft Windows XP Home Edition N
- Microsoft Windows XP Tablet PC Edition
- Microsoft Windows 2000 Server
- Microsoft Windows 2000 Advanced Server
- Microsoft Windows 2000 Professional Edition
- Microsoft Windows 95
- Microsoft Windows NT Workstation 4.0 Developer Edition
- Microsoft Windows NT Server 4.0 Standard Edition
- Windows 7 Enterprise
- Windows 7 Home Basic
- Windows 7 Home Premium
- Windows 7 Professional
- Windows 7 Starter
- Windows 7 Ultimate
- Windows 7 Enterprise N
- Windows 7 Home Premium N
- Windows 7 Professional N
- Windows 7 Starter N
- Windows 7 Ultimate N
| kbresolve kbenv kberrmsg kbinfo kbkern32dll KB249873 |