プロセス アーキテクチャの決定: 32 ビットまたは 64 ビット
コンピュータ システムの領域では、32 ビットと 64 ビットを区別します。 bit アプリケーションは、互換性とパフォーマンスの最適化にとって非常に重要です。さまざまな状況で、名前またはプロセス ID によって特定のプロセスのアーキテクチャを確認する必要がある場合があります。
IntPtr Trick
興味深いテクニックには、サイズの利用が含まれます。以下に示すように、IntPtr データ型の。
if (IntPtr.Size == 4) { // 32-bit } else if (IntPtr.Size == 8) { // 64-bit } else { // Uncharted territory }
このアプローチでは、次の事実が使用されます。 IntPtr は、32 ビット システムでは 4 バイト、64 ビット システムでは 8 バイトのサイズを持つネイティブ ポインターに対応します。
64 ビット エミュレータの検出
プロセスが 64 ビット エミュレータ (WOW64) で実行されているかどうかを確認するには、もう少し複雑なアプローチが必要です。次の C# コードでこれを実現します。
... private static bool IsWin64Emulator(this Process process) { if ((Environment.OSVersion.Version.Major > 5) || ((Environment.OSVersion.Version.Major == 5) && (Environment.OSVersion.Version.Minor >= 1))) { bool retVal; return NativeMethods.IsWow64Process(process.Handle, out retVal) && retVal; } return false; // not on 64-bit Windows Emulator } ...
このメソッドは、Windows API 関数 IsWow64Process を利用して、プロセスが 64 ビット エミュレータ環境で実行されているかどうかを判断します。プロセス ハンドルを入力として受け取り、WOW64 で 32 ビット プロセスとして実行されている場合は true を返します。
以上が32 ビット プロセスか 64 ビット プロセスか?プロセス アーキテクチャを決定するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。