今更ながら知ったので、忘れないうちにメモメモ。
以前以下のような記事を書いていたのですが
- x86かx64か否かを判別する (IntPtr.Size, 4バイト, 8バイト, Windows Server 2008 R2)
.NET Framework 4.0よりEnvironmentクラスに64ビット環境か否かを判定する
便利なプロパティが追加されています。以下の2つです。
- Is64BitOperatingSystem
- 64ビットOSか否かを判定してくれます。
- Is64BitProcess
- 64ビットプロセスか否かを判定してくれます。
以下のサンプルを作成して確認。
using System; using System.Collections.Generic; using System.Linq; namespace _64Bit { class Program { static void Main() { Console.WriteLine("64ビットOSか? == {0}", Environment.Is64BitOperatingSystem); Console.WriteLine("64ビットプロセスで動作中? == {0}", Environment.Is64BitProcess); Console.ReadLine(); } } }
ビルドオプションにて、プラットフォームターゲットを「x64」に設定してコンパイルし実行した場合
以下のようになります。(Windows Server 2008 R2で実行)
64ビットOSか? == true
64ビットプロセスで動作中? == true
プラットフォームターゲットを「x86」に設定してコンパイルし実行した場合
以下のようになります。(Windows Server 2008 R2で実行)
64ビットOSか? == true
64ビットプロセスで動作中? == false
つまり、WoW64状態。
上記のプログラムを32ビットOS環境(私の場合はWindows7)に持って行って実行した場合
以下のようになります。
64ビットOSか? == false
64ビットプロセスで動作中? == false
================================
過去の記事については、以下のページからご参照下さい。
- いろいろ備忘録日記まとめ