根據該MSDN page:如何啓用我的32位Delphi應用程序以在64位窗口上使用4GB內存(通過Wow64.exe)?
WOW64使32位應用程序的64位內核的 趁。 因此,32位應用程序可以使用大量的內核句柄和 窗口句柄。然而,32位 應用程序可能無法WOW64下創建 儘可能多線程,因爲它們 可以在基於x86的 系統本機運行時,因爲WOW64爲每個分配一個 附加的64位堆棧(通常爲512 KB)線。另外,對於WOW64本身以及其使用的數據結構 的一些地址空間保留 。 保留的金額取決於處理器;在Intel Itanium 上保留的更多內容與x64處理器上保留的更多。
如果應用程序具有在圖像標題中的 IMAGE_FILE_LARGE_ADDRESS_AWARE標誌 組,每個32位 應用程序接收的虛擬 地址空間的4 GB在WOW64 環境。如果未設置 IMAGE_FILE_LARGE_ADDRESS_AWARE標記爲 ,則每個32位應用程序 都將在WOW64環境中接收2 GB的虛擬地址空間 。
如何有效地設置IMAGE_FILE_LARGE_ADDRESS_AWARE國旗在我的2007年德爾福的應用程序,這樣我可以讓我的32位應用程序WOW64 知道並解決內存高達一個完整的4GB?
解決RTL/VCL中這些問題的機會是否存在? :) – Alex 2010-04-30 08:58:20
爲什麼指針應該被解釋爲有符號的32位整數?這聽起來像是Embarcadero應該修復的一個有缺陷的設計,特別是因爲你似乎並不急於發佈64位版本的Delphi。 – 2010-07-29 11:59:24
@Jan Goyvaerts - 簡單,方便,高效地檢測溢出,就像我描述的那樣。而圍繞64位等的市場營銷和產品決策與我在此發佈的特定技術警告完全無關。 – 2010-07-31 22:02:57