Aplikasi selalunya perlu berinteraksi dengan proses lain pada sistem. Satu maklumat penting untuk interaksi tersebut ialah sama ada proses sasaran berjalan dalam mod 32-bit atau 64-bit. Perbezaan ini boleh menjejaskan keserasian, penggunaan memori dan faktor lain.
Untuk menentukan bitness secara pemrograman, C# menyediakan kaedah mudah:
if (IntPtr.Size == 4) { // 32-bit } else if (IntPtr.Size == 8) { // 64-bit } else { // The future is now! }
Pendekatan ini menyemak saiz IntPtr, yang menunjukkan saiz penunjuk pada sistem yang sedang berjalan: 4 bait untuk 32-bit dan 8 bait untuk 64-bit.
Untuk menanyakan proses tertentu mengikut nama atau ID untuk bitnya, pendekatan yang lebih lanjut diperlukan. Menggunakan kelas Proses, anda boleh mendapatkan maklumat tentang proses sasaran:
Process process = Process.GetProcessById(processId); bool is32Bit = process.GetProcessBits() == ProcessBits.X32; bool is64Bit = process.GetProcessBits() == ProcessBits.X64;
Kaedah ini memerlukan pertanyaan sistem pengendalian dan mungkin tidak tersedia pada sistem lama.
Untuk sistem Windows yang menyokong emulasi 32-bit (WOW64), anda perlu menyemak sama ada proses 32-bit sedang berjalan di bawah persekitaran emulasi. Kod berikut menunjukkan perkara ini:
bool isWin64Emulator = NativeMethods.IsWow64Process(process.Handle, out bool wow64Process);
Ini memerlukan memanggil fungsi IsWow64Process asli untuk menentukan sama ada proses berjalan sebagai aplikasi 32-bit di bawah Windows 64-bit.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menentukan Secara Pengaturcaraan sama ada Proses adalah 32-bit atau 64-bit?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!