いろいろ備忘録日記

主に .NET と Python絡みのメモを公開しています。

64ビット環境か否かを判定できるEnvironmentクラスの便利なプロパティ (System.Environment, Is64BitOperatingSystem, Is64BitProcess)


今更ながら知ったので、忘れないうちにメモメモ。


以前以下のような記事を書いていたのですが


.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

================================
過去の記事については、以下のページからご参照下さい。