原文作者:
K_H_H
首先必須以管理員身份運行cmd.exe,即在cmd.exe右鍵選擇以管理員身份運行。
目前共有兩個存在網絡盤的文件需要注冊,一個dll,一個ocx。
開始時將兩個文件都拷貝到c:\windows\system32\目錄注冊,但只有dll文件注冊成功,regsvr32那個ocx文件時出現以下錯誤
模塊“%1”加載失敗。\n\n請確保該二進制存儲在指定的路徑中,或者調試它以檢查該二進制或相關的 .DLL 文件是否有問題。\n\n%2。
搜索一下,原來在64位win7上多了一個syswow64目錄,將ocx拷到這個目錄就顯示注冊成功,但很奇怪仍然不可使用。於是將dll拷到c:\windows\system32目錄,將ocx拷到c:\windows\syswow64目錄,再回到網絡目錄,在那個目錄分別注冊這兩個文件就成功了
附
SysWOW64文件夾
http://kb.cnblogs.com/a/1662767/
WoW64 (Windows-on-Windows 64-bit)是一個Windows操作系統的子系統, 能夠運行32-bit 應用程序, 並且在所有的64-bit 版本的windows上都存在- 包括
Windows 2000 Limited Edition
Windows XP Professional x64 Edition, and IA-64
64-bit版本的Windows Server 2003
64-bit版本的Windows Vista
64-bit版本的Windows Server 2008
64-bit版本的Windows 7
在Windows server 2008 R2上, 這是一個可選組件. WoW64被設計用來處理許多在32-bit Windows 和64-bit Windows之間的不同, 尤其是在Windows自身的結構變化上的不同.
轉換庫
==========
WoW64子系統是一個輕量級的compatibility layer, 在所有版本的windows上都擁有同樣的接口. 它的主要目的是用來創建32-bit環境, 為了讓32位的應用程序可以不經過任何修改就運行在64-bit的系統上, 它提供了必須的接口.
技術上說, WOW64是由三個DLL實現的.
Wow64.dll 是Windows NT kernel的核心接口, 在32位和64位調用之間進行轉換, 包括指針和調用棧的操控.
Wow64win.dll 為32位應用程序提供合適的入口指針.
Wow64cpu.dll 負責將處理器在32位和64位的模式之間轉換.
注冊表和文件系統
==========
WOW子系統也會處理運行64-bit應用程序的其他關鍵方面. 比如說, 在管理32位應用程序與windows注冊表的交互時, 會給存儲子系統提供接口(32位的注冊表與64位的注冊表不太一樣.)
操作系統使用%SystemRoot%\system32目錄來存儲64-bit的庫文件和可執行文件. 這樣做是為了向后兼容, 因為很多舊系統的應用程序都是使用hardcoded的方式來獲取這個路徑的. 當執行32位應用程序的時候, WOW64會將對DLL的請求從system32重定向到%SystemRoot%\SysWOW64, 在SysWOW64目錄中, 包含了舊系統的庫和可執行文件.
目前共有兩個存在網絡盤的文件需要注冊,一個dll,一個ocx。
開始時將兩個文件都拷貝到c:\windows\system32\目錄注冊,但只有dll文件注冊成功,regsvr32那個ocx文件時出現以下錯誤
模塊“%1”加載失敗。\n\n請確保該二進制存儲在指定的路徑中,或者調試它以檢查該二進制或相關的 .DLL 文件是否有問題。\n\n%2。
搜索一下,原來在64位win7上多了一個syswow64目錄,將ocx拷到這個目錄就顯示注冊成功,但很奇怪仍然不可使用。於是將dll拷到c:\windows\system32目錄,將ocx拷到c:\windows\syswow64目錄,再回到網絡目錄,在那個目錄分別注冊這兩個文件就成功了
附
SysWOW64文件夾
http://kb.cnblogs.com/a/1662767/
WoW64 (Windows-on-Windows 64-bit)是一個Windows操作系統的子系統, 能夠運行32-bit 應用程序, 並且在所有的64-bit 版本的windows上都存在- 包括
Windows 2000 Limited Edition
Windows XP Professional x64 Edition, and IA-64
64-bit版本的Windows Server 2003
64-bit版本的Windows Vista
64-bit版本的Windows Server 2008
64-bit版本的Windows 7
在Windows server 2008 R2上, 這是一個可選組件. WoW64被設計用來處理許多在32-bit Windows 和64-bit Windows之間的不同, 尤其是在Windows自身的結構變化上的不同.
轉換庫
==========
WoW64子系統是一個輕量級的compatibility layer, 在所有版本的windows上都擁有同樣的接口. 它的主要目的是用來創建32-bit環境, 為了讓32位的應用程序可以不經過任何修改就運行在64-bit的系統上, 它提供了必須的接口.
技術上說, WOW64是由三個DLL實現的.
Wow64.dll 是Windows NT kernel的核心接口, 在32位和64位調用之間進行轉換, 包括指針和調用棧的操控.
Wow64win.dll 為32位應用程序提供合適的入口指針.
Wow64cpu.dll 負責將處理器在32位和64位的模式之間轉換.
注冊表和文件系統
==========
WOW子系統也會處理運行64-bit應用程序的其他關鍵方面. 比如說, 在管理32位應用程序與windows注冊表的交互時, 會給存儲子系統提供接口(32位的注冊表與64位的注冊表不太一樣.)
操作系統使用%SystemRoot%\system32目錄來存儲64-bit的庫文件和可執行文件. 這樣做是為了向后兼容, 因為很多舊系統的應用程序都是使用hardcoded的方式來獲取這個路徑的. 當執行32位應用程序的時候, WOW64會將對DLL的請求從system32重定向到%SystemRoot%\SysWOW64, 在SysWOW64目錄中, 包含了舊系統的庫和可執行文件.
