Windows 2008注册OCX失败。开启cmd.exe执行regsvr32 boo.ocx时传回错误讯息:
无法加载模块 c:windowssystem32oo.ocx"。 请确定二进制文件储存于指定的路径,或进行侦测以检查二进制文件或相依 .DLL 档是否发生问题。找不到指定的模块。
在x64平台注册32位组件(OCX, DLL)应使用c:windowssysWOW64 egsvr32.exe,而非c:windowssystem32 egsvr32.exe! (发现有趣的是: system"32"下的regsvr32.exe是64位版,sysWOW"64"下的regsvr32.exe才是32位版。XD)
将boo.ocx复制到c:windowssysWOW64,并使用同目录下的regsvr32.exe执行注册。
但是注册后会出现第二个问题:0x80040200
"boo.ocx" was loaded but the call to DllRegisterServer failed with error code 0x80040200
模块boo.ocx已加载, 但是呼叫 DllRegisterServer 失败, 错误码为 0x80040200
原因: 同事因不熟悉UAC的眉角,在启动cmd.exe时未Run As Administrator提升为管理者权限,导致0x80040200权限不足错误(印象中,权限不足代码多为0x80004005,本例不然)。重新升为管理者权限执行cmd.exe,注册成功!