※ 引述《leicheong.bbs@bbs.sayya.org (理昌)》之銘言:
: ※ 引述《GP03.bbs@aeug.twbbs.org (Gundam Pilot)》之銘言:
: > 第四代API WinFX聽過了嗎?
: 嗯, 那Wow64聽過嗎?
: 還有你確定你知道Win32API的定義嗎? 還有知道Windows API的
: 演化史嗎(16->32位元, ANSI->Unicode)? 知道的話就應該明白
: 絕大部份Win32的API都必定會順利過渡到64位元平台的.
: "三大DLL"內的API是Windows的基礎, 如果某一天Windows不支援
: 的話, 大概「所有」非VM環境下跑的、目前的程式都不能執行
: 吧.
: 新的東西不一定都是為了取代現有的東西的.
Agree.
基本上要維持這個支援.. 並不是什麼難事
因為.. 所謂的 Win32 API 並非真正的底層
舉個例.. 當我們用 kernel32.dll 裡的 Sleep() 時
可知道它其實是去 call SleepEx(),
而 SleepEx() 內 call 的是 ntdll.dll 裡的 ZwDelayExecution()?
(well, 這還沒到底喔)
除非處理器真的拿掉對 32-bit instructions 的支援..
(連 Intel 都知道 IA-64 不切實際, 回頭來搞 EM64T 了)
否則 Wow64 做的事情, 也就只是把參數補成 64 bits,
然後用類似剛剛說的作法來 call 新的 service,
再把 return value 截成 32 bits.
對效能沒有什麼影響, 搞不好還會變快呢.
因此, 幾乎可以確定, 只要 x86-64 還是主流 (喔, 現在還不是 xD)
用 Win32 API 的 "一般應用程式" 是一定可以繼續用的.
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.5.10