64 位元應用程式
更新:2010 年 8 月
當您編譯應用程式時,您可以指定該應用程式在 Windows 64 位元作業系統中是應該當做原生應用程式執行,還是在 WOW64 下執行。 WOW64 是一種可讓 32 位元應用程式在 64 位元系統上執行的相容性環境。 系統中會包含 WOW64。
備註
在 .NET Framework 1.0 或 1.1 上建置的所有應用程式都視為 32 位元應用程式,因此在 64 位元作業系統上一律會在 32 位元 Common Language Runtime (CLR) 的 WOW64 下執行。 此外,在 .NET Framework 4 版上建置的 32 位元應用程式也會在 64 位元系統的 WOW64 下執行。
Visual Studio 在 x86 電腦上會安裝 32 位元版本的 CLR,在 64 位元 Windows 電腦上則會同時安裝 32 位元版本與適當 64 位元版本的 CLR (Visual Studio 2010 是 32 位元應用程式,因此安裝在 64 位元系統上時,會在 WOW64 下執行)。
注意事項 |
---|
因為 Itanium 處理器系列的 x86 模擬和 WOW64 子系統的設計,應用程式會被限制只能在一個處理器上執行。這些因素會降低 32 位元 .NET Framework 應用程式在 Itanium 架構系統上執行時的效能與延展性。建議您將使用 .NET Framework 1.1 的應用程式用來做為互動式用戶端應用程式,而不要用來做為需要高效能或高延展性的應用程式,例如高負載的 ASP.NET 應用程式。可以的話,請使用 .NET Framework 4 版,因為它針對 Itanium 架構的系統納入了原生 64 位元支援,可以提供更高的效能與延展性。 |
在 64 位元 Windows 作業系統上執行 64 位元 Managed 應用程式時,建立的物件大小不可超過 2 GB。
許多組件在 64 位元 CLR 上的執行行為與在 32 位元 CLR 上的執行行為相同。 不過,某些程式的執行行為可能會因 CLR 不同,有下列一個或多個原因:
包含成員的結構在不同平台上會改變大小,如 any 指標型別。
指標算術包含常數大小。
使用 Int32 而非使用 IntPtr 控制代碼的不正確平台叫用 (Invoke) 或 COM 宣告。
將 IntPtr 轉型 (Casting) 為 Int32。
如需如何將 32 位元應用程式移植至 64 位元 CLR 上執行的詳細資訊,請參閱 MSDN 網站上的將 32 位元 Managed 程式碼移轉至 64 位元 (英文)。
一般 64 位元程式設計資訊
如需 64 位元程式設計的一般資訊,請參閱下列文件:
如需 64 位元 Windows 電腦上 64 位元版本 CLR 的詳細資訊,請參閱 MSDN 網站上的 .NET Framework Developer Center。
在 Windows SDK 文件中,請參閱 64 位元 Windows 程式設計指南 (英文)。
如需如何下載 64 位元版本 CLR 的詳細資訊,請參閱 MSDN 網站上的 .NET Framework Developer Center 下載。
如需 Visual Studio 對於建立 64 位元應用程式之支援的詳細資訊,請參閱 Visual Studio 開發環境 64 位元支援。
建立 64 位元應用程式的編譯器支援
根據預設,在 32 位元或 64 位元電腦上使用 .NET Framework 2.0 建置應用程式時,應用程式在 64 位元電腦上會以原生應用程式的形式 (而不是在 WOW64 下) 執行。 下表列出的文件會教您如何使用 Visual Studio 編譯器,建立以原生方式執行、在 WOW64 之下執行,或者在這兩種方式下都能執行的 64 位元應用程式。
編譯器 |
編譯器選項 |
---|---|
Visual Basic |
|
Visual C# |
|
Visual C++ |
您可以使用 /clr:safe 建立與平台無關的 Microsoft Intermediate Language (MSIL) 應用程式。 如需詳細資訊,請參閱 /clr (Common Language Runtime 編譯)。 Visual C++ 會包含每一種 64 位元作業系統的個別編譯器。 如需如何使用 Visual C++ 建立可在 64 位元 Windows 作業系統上執行之原生應用程式的詳細資訊,請參閱 使用 Visual C++ 進行 64 位元程式設計。 |
JScript |
判斷 .exe 檔案或 .dll 檔案的狀態
若要判斷 .exe 檔案或 .dll 檔案是只能在特定平台上執行,還是可以在 WOW64 下執行,請在命令列使用 corflags.exe。 您也可以使用 corflags.exe 變更 .exe 檔案或 .dll 檔案的平台狀態。 如需詳細資訊,請參閱 CorFlags.exe (CorFlags 轉換工具)。 在 Visual Studio 組件的 CLR 標頭 (或 COM+ 執行階段標頭) 中,執行階段主要版本號碼是設為 2,而執行階段次要版本號碼是設為 5 (在 Visual Studio .NET 2003 組件中為 0)。 執行階段次要版本號碼設為 0 的應用程式會視為舊版應用程式,因此一律會在 WOW64 下執行。
若要以程式設計方式查詢 .exe 或 .dll,以查看它是只能在特定平台上執行還是可以在 WOW64 下執行,請使用 GetPEKind 方法。
請參閱
其他資源
Windows-Based Applications and Components
變更記錄
日期 |
記錄 |
原因 |
---|---|---|
2010 年 8 月 |
更新的連結和版本號碼。 |
資訊加強。 |