Regsvr32 在64位机器上的用法(转载)

Posted 车臣

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Regsvr32 在64位机器上的用法(转载)相关的知识,希望对你有一定的参考价值。

转载:http://blog.csdn.net/xuzhimin1991/article/details/65436864

regsvr32是windows上注册 OLE 控件(DLL 或 ActiveX )的常用命令。注册 OLE 控件可更新 Windows 注册表中文件的位置和功能,从而使程序正常运行。32位系统注册32位控件,64位系统注册64位控件,一般都没有问题。一般容易出问题的是在64位操作系统上注册32位控件。

 

注意:64 位版本的 Windows 操作系统上有两个版本的 Regsv32.exe 文件。

  • 64 位版本是 %systemroot%\System32\regsvr32.exe。
  • 32 位版本是 %systemroot%\SysWoW64\regsvr32.exe。


你并没有看错,我并没有说反。SysWoW64中的“WoW”正是“Windows on Windows”的缩写,表示一个运行在64位操作系统环境下的32位子系统。因此要在64位操作系统上正确注册一个32位的OLE控件,要确保以下步骤:

  1. 用管理员身份运行cmd;
  2. cd到控件所在路径;
  3. 键入“%systemroot%\SysWoW64\regsvr32.exe xxx.ocx"并回车;


为了能使32位的控件在32位操作系统与64位操作系统下都能正确自动注册,可采用批处理命令方式,在命令中自动判断操作系统是32位还是64位,并针对性调用不同的注册命令即可。具体方法如下:

  1. 在控件所在路径下创建一个txt,重命名为reg.bat文件。
  2. 键入以下命令并保存,注意修改为自己的控件文件名:
    reg Query "HKLM\Hardware\Description\System\CentralProcessor\0" | find /i "x86" > NUL && set OS=32BIT || set OS=64BIT
    
    if %OS%==32BIT %windir%\system32\regsvr32.exe "%~dp0QfltOCX.ocx"
    if %OS%==64BIT %windir%\syswow64\regsvr32.exe "%~dp0QfltOCX.ocx"
  3. 使用管理员身份运行reg.bat即可。

以上是关于Regsvr32 在64位机器上的用法(转载)的主要内容,如果未能解决你的问题,请参考以下文章

64位 regsrv win10_Regsvr32 在64位机器上的用法

无趣的 BHO dll 64 位和 32 位使用 regsvr32 导致 0x8002801c 错误

无法在 32 位机器上注册使用 VS2012/VC++ 构建的 COM DLL

RegSvr32.exe 无法启动

如何在没有regsvr32的情况下注册glut32.dll?

64位机器上的结构填充