DLL(OCX)⽂件注册与反注册⽅法(regsvr32⽤法)注册DLL与反注册DLL⽂件的⽅法
如果经常需要注册与反注册dll可以⽤注册表⽂件
复制代码
代码如下:
[HKEY_CLASSES_ROOT\dllfile\shell\Unregister]
"Command"="regsvr32 %1 /u"
[HKEY_CLASSES_ROOT\dllfile\shell\Register]
"Command"="regsvr32 %1"
当我们需要注册或者反注册dll时,只要在该dll⽂件上按下⿏标右键即可!
由于下⾯的⽅法太过啰嗦,这⾥简单的说下,注册dll
⼀般情况下,为了经常使⽤,建议将dll复制到系统盘的windows/system32⽬录,如果不是的,有时候需要加上dll的完整路径注册dll
复制代码
代码如下:
regsvr32 /s winshow.dll
反注册dll
复制代码
代码如下:
regsvr32 /u winshow.dll
ocx 控件注册⽅法
ocx 控件的安装⽅式有很多种,这⾥介绍最简单的⼀种。
OCX 控件⽂件复制到某个⽬录
步骤:
1.将需要安装的⽬录,例如 C 盘根⽬录下。activex 控件
2.进⼊开始菜单,点击“运⾏”
3.在出现的框中键⼊regsvr32 C:/ 。(XXXX 为控件名,C:/为⽬录)
4.点击确认后等待出现提醒注册成功即可。
如果是偶尔⼀个软件使⽤,将这个ocx⽂件复制到软件⽬录即可。
反注册DLL⼤法
UnRegister DLLs
You can use the Regsvr32 tool () to register and unregister object linking and
embedding (OLE) controls such as dynamic-link library (DLL) or ActiveX Controls (OCX) files
that are self-registerable.
< has the following command-line options:
Regsvr32 [/n] [/i[:cmdline]] dllname
/u - Unregister server
/i - Call DllInstall passing it an optional [cmdline]; when used with /u calls dll
uninstall
/n - do not call DllRegisterServer; this option must be used with /i
When you , it attempts to load the component and call its DLLSelfRegister
function. If this attempt is successful, displays a dialog indicating success.
If the attempt is unsuccessful, returns an error message, which may include a
Win32 error code.
Example: To unregister Winshow's winshow.dll:
Click the Start button, and select Run
Enter this command line:
regsvr32 /u [systemroot]\winshow.dll
For example, in a Windows XP machine in which your systemroot was at c:\winnt, you would
enter:
regsvr32 /u c:\winnt\winshow.dll
你能构使⽤Regsvr32⼯具注册和反注册⽬标链接和深层OLE控制器类似于⾃动注册的动态链接库(DLL)和ActiveX控件。
(OCX)⽂件。
Regsvr32命令⾏参数:
格式:Regsvr32 [/n] [/i[:cmdline命令⾏]] dllnamedll⽂件名
/u - Unregister server反注册服务
/i - Call DllInstall passing it an optional [cmdline]; when used with /u calls dll
uninstall
/i 通过此DLL的可选参数,调⽤DLL安装,反安装使⽤/u
/n - do not call DllRegisterServer; this option must be used with /i
不调⽤DLL注册服务,此选项必须和/i⼀起使⽤
当你使⽤,它会尝试载⼊DLL内组件并且调⽤本⾝的⾃注册功能。如果尝试成功,显⽰⼀个成功提⽰框,如果尝试失败,会返回⼀个错误消息,⼀般会包含Win32错误代码(特征码)。
例如
反注册Windows的windows.dll⽂件
1、点击“开始”按钮,选择“运⾏”
2、输⼊如下的命令⾏:
regsvr32 /u [systemroot系统⽬录]\winshow.dll
注:卸载DLL时,⽬录为此DLL⽂件所在完整的最后打开的⽬录
如:在系统⽬录是c:\winnt的Windows XP操作系统中,你可以输⼊如下命令⾏:
regsvr32 /u c:\winnt\winshow.dll
注意:⼀般来说,只有在⽆法删除某些注册过的DLL⽂件时,才使⽤反注册此DLL
使⽤过activex的⼈都知道,activex不注册是不能够被系统识别和使⽤的,⼀般安装程序都会⾃动地把它所使⽤的activex控件注册,但如果你拿到的⼀个控件需要⼿动注册怎么办呢?如果修改注册表那就太⿇烦了,在windows的system⽂件夹下有⼀个的程序,它就是windows⾃带的activex注册和反注册⼯具。
⼀、regsvr32的⽤法为:
“regsvr32 [/s] [/n] [/i(:cmdline)] dllname”。其中dllname为activex控件⽂件名,建议在安装前拷贝到system⽂件夹下。
参数有如下意义:
/u——反注册控件
/s——不管注册成功与否,均不显⽰提⽰框
/c——控制台输出
/i——跳过控件的选项进⾏安装(与注册不同)
/n——不注册控件,此选项必须与/i选项⼀起使⽤
执⾏该命令的⽅法:
1、可以在“开始”--“运⾏”,调出运⾏的对话框,也可以使⽤Win+R热键,然后直接在输⼊栏输⼊即可
2、在开始--运⾏输⼊cmd,调出‘命令提⽰符’窗⼝,然后再执⾏regsvr32命令。
⼆、Regsvr32错误消息的说明
当使⽤ 时,它会尝试加载该组件并调⽤它的 DLLSelfRegister 函数。如果此尝试成功, 会显⽰⼀个指⽰成功的对话框。如果此尝试失败, 会返回⼀条错误消息,其中可能会包括⼀个 Win32 错误代码。
以下列表介绍了 RegSvr32 错误消息和可能的原因。
Unrecognized flag:/invalid_flag
键⼊的标志或开关组合⽆效(请参阅本⽂中的“ 的⽤法”⼀节)。
No DLL name specified.
未包括 .dll ⽂件名(请参阅本⽂中的“ 的⽤法”⼀节)。
Dllname was loaded, but the DllRegisterServer or DllUnregisterServer entry point was not found.
Dllname 不是 .dll 或 .ocx ⽂件。例如,键⼊ 就会⽣成该错误消息。
Dllname is not an executable file and no registration helper is registered for this file type.
Dllname 不是可执⾏⽂件(.exe、.dll 或 .ocx)。例如,键⼊ regsvr32 autoexec.bat 就会⽣成该错误消息。
Dllname was loaded, but the DllRegisterServer or DllUnregisterServer entry point was not found.
Dllname 可能未导出,或者内存中可能有损坏的 Dllname 版本。请考虑使⽤ Pview 来检测该⽂件并删除它。
Dllname is not self-registerable or a corrupted version is in memory.
例如,键⼊ regsvr32 icwdial.dll 后就会返回该错误消息,因为 Icwdial.dll ⽂件不能⾃⾏注册。
如果您怀疑内存中有损坏的 Dllname 版本,请尝试重新启动计算机,或重新提取该⽂件的原始版本。
如果您运⾏的是 Windows NT,可能需要使⽤ Microsoft Windows NT Server 4.0 资源⼯具包中的 Kill 或 Pview ⼯具。有关其他信息,请单击以查看以下 Microsoft 知识库⽂章: 197155 如何终⽌孤⽴进程
OleInitialize failed (or OleUninitialize failed).
Regsvr32 必须先初始化 COM 库,然后才能调⽤所需的 COM 库函数并在关闭时撤消对该库的初始化。
如果对 COM 库进⾏初始化或撤消初始化的尝试失败,就会出现这些错误消息。例如,Ole32.dll ⽂件
可能已经损坏,或者其版本有误。
LoadLibrary("Dllname") failed.GetlastError returns 0x00000485
在 Winerror.h 中,0x00000485 = 1157 (ERROR_DLL_NOT_FOUND),表⽰“不到运⾏该应⽤程序所需的某个库⽂件”。例如,键⼊ regsvr32 missing.dll 后,如果不到 Missing.dll ⽂件,就会返回该错误消息。
LoadLibrary("Dllname") failed.GetLastError returns 0x00000002
在 Winerror.h 中,0x00000002 = 2 (ERROR_FILE_NOT_FOUND),表⽰“系统不到指定的⽂件”。换⾔之,系统不到相关的 DLL。例如,如果键⼊ regsvr32 icwdial.dll,⽽此时缺少 Tapi32.dll(依赖项),就会返回该错误消息。LoadLibrary("dskmaint.dll") failed.GetLastError returns 0x000001f 在 Winerror.h 中,0x000001f = 31
(ERROR_GEN_FAILURE),表⽰“附加到系统上的设备不能正常⼯作”。如果您尝试注册 Win16 .dll ⽂件,就会发⽣此现象。例如,键⼊ regsvr32 dskmaint.dll 会返回该错误消息。
DllRegisterServer (or DllUnregisterServer)in Dllname failed.返回代码是:字符串
在 Winerror.h 中搜索字符串。
< 和依赖项
< 依赖于 Kernel32.dll、User32.dll 和 Ole32.dll ⽂件(在 Windows NT 中,还依赖于 Msvcrt.dll 和 Advapi32.dll ⽂件)。 会加载您尝试注册或撤消注册的⽂件及其所有依赖项。如果缺少必需的⽂件或者它们已损坏,该进程可能会失败。
您可以使⽤ 来确定您尝试注册或撤消注册的⽂件的依赖项。在 Microsoft Windows 98 资源⼯具包和 Microsoft Windows NT 4.0 资源⼯具包⽀持⼯具中都提供了 。
247024 Tools Included with the Microsoft Windows 98 Resource Kit
三、⼀个快速注册 DLL 及 OCX 的⽅法
注意看罗!⽅法如下:
1、在资源管理器中到 C:\Windows\ 并【复制】 ( 按⿏标右键选复制 )
2、将⽬录移到 C:\Windows\SendTo 后,执⾏【贴上快捷⽅式】 ( 按⿏标右键选贴上快捷⽅式 )
3、将快捷⽅式名称改成【REGISTER】
4、OK
现在,如果您想替某⼀个⽂件做注册动作,例如:C:\Windows\,您只要打开资源管理器,到
C:\Windows\,按⿏标右键选【传送到】【REGISTER】即可完成注册动作了!
注:有⼀个地⽅要注意的是, 只能注册 32 位的⽂件!如果要⽤它来注册 16 位的⽂件,会有错误讯息产⽣。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论