Menentukan Bitness Proses
Dalam C#, menentukan sama ada proses tertentu berjalan dalam mod 32-bit atau 64-bit ialah dicapai melalui pelbagai kaedah.
Saiz IntPtr Semak
Pendekatan paling mudah melibatkan pemeriksaan saiz jenis data IntPtr:
if (IntPtr.Size == 4) { // 32-bit process } else if (IntPtr.Size == 8) { // 64-bit process }
WOW64 Check
Untuk memastikan sama ada yang lain proses sedang berjalan dalam emulator 64-bit (WOW64), pertimbangkan perkara berikut kod:
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 }
di mana NativeMethods.IsWow64Process ialah import 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);
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menentukan sama ada Proses C# adalah 32-bit atau 64-bit?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!