[轉]在Win7 64位注冊ActiveX控件


 

原文作者:  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目錄中, 包含了舊系統的庫和可執行文件.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM