プロセスのビット数の決定
C# では、特定のプロセスが 32 ビット モードで実行されているか、64 ビット モードで実行されているかを決定します。さまざまな方法で実現されます。
IntPtr サイズCheck
最も簡単な方法には、IntPtr データ型のサイズをチェックすることが含まれます。
if (IntPtr.Size == 4) { // 32-bit process } else if (IntPtr.Size == 8) { // 64-bit process }
WOW64 Check
他のデータ型であるかどうかを確認します。プロセスが 64 ビット エミュレータ (WOW64) で実行されている場合は、次の点を考慮してください。コード:
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 }
ここで、NativeMethods.IsWow64Process は DLL インポートです:
[DllImport("kernel32.dll", SetLastError = true, CallingConvention = CallingConvention.Winapi)] [return: MarshalAs(UnmanagedType.Bool)] internal static extern bool IsWow64Process([In] IntPtr process, [Out] out bool wow64Process);
以上がC# プロセスが 32 ビットか 64 ビットかを判断するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。