在64位操作系統中注冊COM組件時,使用regsvr32命令注冊成功,但在vbs文件中創建組件時失敗,提示未能找到相關的組件,Err.Munber=429。 下文就讓小編跟大家詳細的講解電腦64位操作系統中注冊32位COM組件的方法。
根據http://support.microsoft.com/kb/249873的提示:
The 64-bit version is %systemroot%System32regsvr32.exe.
The 32-bit version is %systemroot%SysWoW64regsvr32.exe. 看著有64的目錄原來是32位程序
所以在64位系統中注冊32位COM組件時,應該使用SysWoW64目錄下的regsvr32.exe命令。並且創建組件的程序應該以管理員權限啟動,否則沒有足夠的權限,創建仍然失敗。
但當在asp文件中創建組件時仍然會失敗,即使IE以管理員權限啟動,Err.Munber=429。
下面是demon的補充:
以舊版的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:WindowsSysWOW64並運行C:WindowsSysWOW64regsvr32.exe注冊,這樣就會彈出:
DllRegisterServer 在 dynwrapx.dll 已成功。
其他32位COM組件的注冊方法是一樣的,順便說一下,最新版的DynamicWrapperX已經有32和64兩種版本了。
以後大家在下載dll的時候,如果沒有64位的dll可以用這個方法,試試。