以旧版的DynamicWrapperX为例,这是32位的COM组件,如果直接用regsvr32命令注册,会弹出错误:
模块“dynwrapx.dll”可能与您正在运行的 Windows 版本不兼容。检查该模块是否与 regsvr32.exe 的 x86 (32 位)或 x64 (64 位)版本兼容。
跟wscript.exe一样,regsvr32.exe也有32位和64位两个版本,用64位版本的regsvr32.exe无法注册32位的COM组件。微软也真是,难道就不能换个名字?64位的叫做regsvr64不就行了。
正确的做法是将dynwrapx.dll复制到C:\Windows\SysWOW64并运行C:\Windows\SysWOW64\regsvr32.exe注册,这样就会弹出:
DllRegisterServer 在 dynwrapx.dll 已成功。
其他32位COM组件的注册方法是一样的,顺便说一下,最新版的DynamicWrapperX已经有32和64两种版本了。