.NET アプリケーションの Windows アーキテクチャを正確に識別する
.NET アプリケーションの互換性と最適なパフォーマンスを確保するには、正確なプラットフォームの検出が不可欠です。 ただし、Environment.OSVersion.Platform
のみに依存すると信頼性が低くなり、64 ビット システムでも "Win32NT" が報告されることがあります。
信頼性の高いアーキテクチャ検出のために、.NET 4 では Environment.Is64BitProcess
と Environment.Is64BitOperatingSystem
が導入されました。これらのプロパティは、システムのアーキテクチャを決定するためのより正確な方法を提供します。
これらのプロパティの動作は、mscorlib アセンブリのビット数によって異なります。 32 ビット バージョンでは、Is64BitProcess
は false
を返し、Is64BitOperatingSystem
は P/Invoke を使用して WoW64 を検出します。 64 ビット バージョンは、両方のプロパティに対して true
を返します。
これらの使用法を示すコード例は次のとおりです。
<code class="language-csharp">bool is64BitProcess = Environment.Is64BitProcess; bool is64BitOperatingSystem = Environment.Is64BitOperatingSystem; if (is64BitProcess) { Console.WriteLine("Running as a 64-bit process"); } else { Console.WriteLine("Running as a 32-bit process"); } if (is64BitOperatingSystem) { Console.WriteLine("Running on a 64-bit operating system"); } else { Console.WriteLine("Running on a 32-bit operating system"); }</code>
これらのプロパティにより、開発者はプラットフォーム アーキテクチャを正確に識別できるようになり、対象を絞った最適化や互換性チェックが容易になります。 アプリケーションが 64 ビット OS 上で実行される 32 ビット プロセスであっても、ネイティブ 64 ビット アプリケーションであっても、このアプローチによりプラットフォームを正確に識別できます。
以上が.NETで32ビットと64ビットのWindowsアーキテクチャを確実に検出するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。