.NET で Windows 64 ビット プラットフォームを検出するにはどうすればよいでしょうか? 質問する

.NET で Windows 64 ビット プラットフォームを検出するにはどうすればよいでしょうか? 質問する

。ネット2.0 C# アプリケーションでは、次のコードを使用してオペレーティング システム プラットフォームを検出します。

string os_platform = System.Environment.OSVersion.Platform.ToString();

これは「Win32NT」を返します。問題は、Windows Vista 64 ビットで実行している場合でも「Win32NT」が返されることです。

正しいプラットフォーム (32 ビットまたは 64 ビット) を確認する他の方法はありますか?

Windows 64 ビットで 32 ビット アプリケーションとして実行する場合も 64 ビットが検出されることに注意してください。

ベストアンサー1

.NET 4では、Environmentクラスに2つの新しいプロパティが追加されました。64ビットプロセスそして64ビットオペレーティングシステム興味深いことに、Reflector を使用すると、mscorlib の 32 ビット バージョンと 64 ビット バージョンで実装が異なっていることがわかります。32 ビット バージョンは、Is64BitProcess に対して false を返し、Is64BitOperatingSystem に対して P/Invoke 経由で IsWow64Process を呼び出します。64 ビット バージョンは、両方に対して true を返します。

おすすめ記事