這篇文章主要介紹了64位操作系統中注冊32位COM組件的方法,需要的朋友可以參考下
在64位操作系統中注冊COM組件時,使用regsvr32命令注冊成功,但在vbs文件中創建組件時失敗,提示未能找到相關的組件,Err.Munber=429。
根據http://support.microsoft.com/kb/249873的提示:
The 64-bit version is %systemroot%/System32/regsvr32.exe.
The 32-bit version is %systemroot%/SysWoW64/regsvr32.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:/Windows/SysWOW64并運行C:/Windows/SysWOW64/regsvr32.exe注冊,這樣就會彈出:
DllRegisterServer 在 dynwrapx.dll 已成功。
其他32位COM組件的注冊方法是一樣的,順便說一下,最新版的DynamicWrapperX已經有32和64兩種版本了。
以后大家在下載dll的時候,如果沒有64位的dll可以用這個方法,試試。
新聞熱點
疑難解答
圖片精選