轉:System32與SysWOW64的關係
有時候人們懷疑一個系統的底層結構能否保證這個系統在被使用時達到安全而高效,64位版本的Windows在這方面就比較完美。Windows XP和Windows Server 2003都是執行64位硬體的64位版本作業系統。64位Windows作業系統執行64位程式碼,同時通過使用WoW64(Windows on Windows 64)也能執行32位程式碼。
你看,這並不是什麼大問題,畢竟,32位版本的不同Windows作業系統都用來同時執行32位和16位程式碼。(技術上說,並不是同時執行,相關解釋在以後的技巧中會展示給大家)
32位版本的Windows在如何允許32為和16位程式碼並肩執行方面有著很複雜的機制。然而,這個系統被設計成無論你是系統管理員還是臨時使用者,你都不需要知道這些機制如何執行。
但是64位版本的Windows就不同了。從一個使用者的立場上看,64位應用程式和32位應用程式簡單地同時執行,沒有什麼特殊的。但是對於一個管理員(和幫助桌面使用者的人員)來說,這其中就有很大不同了:32位程式碼與64位程式碼相隔離。這個隔離是如此重要以至於64位版本的Windows有兩個登錄檔,一個是針對64位,一個是針對32位。
儘管64位版本的Windows XP和Windows Server 2003看起來在操作時候和它們32位的版本幾乎同樣的,但是在表象之下其實是有很大不同的。如果你在64位版本的Windows下按照32位版本一樣來執行某些程式,你可能引起一些麻煩。
DLL 存放到何處?
64位應用程式的第一條規則是:你絕對不能把32位和64位程式碼混和在同一個應用程式內。如果你有一個64位應用程式,所有與這個應用程式相關的東西,包括
---------------------------------------------------------------------------------------------------------------------
本人問題:拷貝指令碼把dll拷貝到system32,發現自動到了SysWOW64!
有點無語,最後把dll放在自己程式目錄下了,沒有在撕這個問題。