共用方式為


64 位應用程式

當您編譯應用程式時,可以指定它應在 Windows 64 位元作業系統上執行,作為原生應用程式或在 WOW64(Windows 64 位元上的 Windows 32 位元)環境下執行。 WOW64 是一種相容性環境,可讓 32 位應用程式在 64 位系統上執行。 WOW64 包含在 Windows作系統的所有 64 位版本中。

在 Windows 上執行 32 位與 64 位應用程式

建置在 .NET Framework 4 或更新版本的 32 位應用程式,會在 64 位系統上的 WOW64 下執行。

備註

由於針對 Itanium 處理器系列設計 x86 模擬和 WOW64 子系統,因此應用程式僅限於在一個處理器上執行。 這些因素可降低在Itanium型系統上執行的32位 .NET 應用程式的效能和延展性。 建議您使用 .NET Framework 4 或更新版本,其中包含Itanium 型系統的原生 64 位支援,以提高效能和延展性。

根據預設,當您在 64 位 Windows 作系統上執行 64 位受控應用程式時,您可以建立不超過 2 GB 的物件。 不過,在 .NET Framework 4.5 和更新版本中,您可以增加此限制。 欲了解更多資訊,請參閱<gcAllowVeryLargeObjects>元素

許多組件在 32 位元 CLR 和 64 位元 CLR 上以相同方式運行。 不過,如果某些程式包含下列一或多個專案,則根據CLR,可能會有不同的行為:

  • 包含根據平台變更大小之成員的結構(例如,任何指標類型)。
  • 包含固定大小的指標運算。
  • 用不正確的平臺叫用或 COM 宣告來使用 Int32 作為而非 IntPtr 的句柄。
  • 進行從 IntPtrInt32 的類型轉換的代碼。

如需如何將 32 位應用程式移植到 64 位 CLR 上執行的詳細資訊,請參閱 將 32 位 Managed 程式代碼移轉至 64 位

一般 64 位程式設計資訊

如需 64 位程式設計的一般資訊,請參閱下列檔:

建立64位應用程式的編譯程式支援

根據預設,當您使用 .NET 在32位或64位電腦上建置應用程式時,應用程式會在64位電腦上以原生應用程式的形式執行(也就是不在W64下)。 下表列出說明如何使用 Visual Studio 編譯程式建立 64 位應用程式的檔,這些應用程式將在 WOW64 下或兩者下以原生身分執行。

編譯器 編譯程序選項
Visual Basic -平台(Visual Basic)
Visual C# -platform (C# 編譯程序選項)
Visual C++ 您可以使用 /clr:safe 來建立與平台無關的通用中繼語言 (CIL) 應用程式。 如需詳細資訊,請參閱 -clr (Common Language Runtime Compilation)

Visual C++包含每個 64 位作系統的個別編譯程式。 如需如何使用 Visual C++ 建立在 64 位 Windows作系統上執行的原生應用程式的詳細資訊,請參閱 64 位程式設計

判斷 .exe 檔案或 .dll 檔案的狀態

若要判斷 .exe 檔案或 .dll 檔案只打算在特定平臺上或 WOW64 下執行,請使用沒有選項的CorFlags.exe (CorFlags 轉換工具)。 您也可以使用 CorFlags.exe 來變更 .exe 檔案或 .dll 檔案的平台狀態。 Visual Studio 元件的 CLR 標頭將主要運行時間版本號碼設定為 2,次要運行時間版本號碼設定為 5。 將次要運行時間版本設定為 0 的應用程式會被視為舊版應用程式,且一律會在 WOW64 下執行。

若要以程式設計方式查詢 .exe 或 .dll,以查看它是否只打算在特定平臺上或 WOW64 下執行,請使用 Module.GetPEKind 方法。