天天看點

在Win7 64位注冊ActiveX控件

首先必須以管理者身份運作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目錄中, 包含了舊系統的庫和可執行檔案.

繼續閱讀