本機是win7 64位操作系統(tǒng),做數(shù)據(jù)庫實例時需要創(chuàng)建Access數(shù)據(jù)庫的ODBC數(shù)據(jù)源,但是打開ODBC數(shù)據(jù)源后發(fā)現(xiàn)添加里面沒有配置access的連接,如下圖:
還會彈出以下問題框:
解決方法:打開目錄:“C:\Windows\SysWOW64”,雙擊該目錄下的“odbcad32.exe”文件(以前打開的是C:\Windows\system32目錄下的該文件),進去ODBC數(shù)據(jù)源管理界面后問題就都可以解決了。于是查追根到了操作系統(tǒng)的原理上,下面談談System,System32,SysWoW64
WoW64 (Windows-on-Windows 64-bit)是一個Windows操作系統(tǒng)的子系統(tǒng), 能夠運行32-bit 應用
程序, 并且在所有的64-bit 版本的windows上都存在。
WoW64子系統(tǒng)是一個輕量級的compatibility layer, 在所有版本的windows上都擁有同樣的接口. 它的主要目的是用來創(chuàng)建32-bit環(huán)境, 為了讓32位的應用程序可以不經(jīng)過任何修改就運行在64-bit的系統(tǒng)上, 它提供了必須的接口.
技術(shù)上說, WOW64是由三個DLL實現(xiàn)的:Wow64.dll 是Windows NT kernel的核心接口, 在32位和64位調(diào)用之間進行轉(zhuǎn)換, 包括指針和調(diào)用棧的操控. Wow64win.dll 為32位應用程序提供合適的入口指針.Wow64cpu.dll 負責將處理器在32位和64位的模式之間轉(zhuǎn)換。
如果你查看一下在32位操作系統(tǒng)內(nèi)的\Windows文件夾,你會發(fā)現(xiàn)兩個子目錄:一個名為SYSTEM,還有一個名為SYSTEM32。SYSTEM目錄是Windows 3.x遺留下來的,用來保持Windows的對一些舊的應用程序的向下兼容性。一般說來,16位的DLL文件(以及其它的支持文件)被存放在\Windows\System文件夾里,32位DLL文件和不同支持文件被存放在\Windows\System32文件夾里。
32位版本的Windows保持16位和32位DLL文件的方式是非常簡單的,但是64位版本的Windows保持64位和32位DLL文件的方式就不這么簡單了。
理論上說,微軟將要創(chuàng)建一個名為\Windows\System64的文件夾來用其存放64位DLL文件,但是取而代之的是,微軟創(chuàng)建了一個新的名為SysWOW64的文件夾來存放32位的DLL文件。第一眼看起來,讓人感覺這個文件夾應該存放64位應用程序的,但是注意,32位應用程序本來應該存放它們的DLL文件到\Windows\System32文件夾里面。
\Windows\System32文件夾在64位版本的Windows內(nèi)仍然存在。但是微軟使用這個文件夾做為64位DLL的倉庫,而不是32位DLL文件的。我不清楚微軟使用\Windows\System32文件夾來存放64位DLL的原因,但是據(jù)了解這么做是為了向下兼容性。
聯(lián)系客服