Як програмно визначити, запущені ми на 64-розрядної Windows?
Щоб програмно визначити, запущені ви на 64-розрядної Windows, ви можете використовувати функцію IsWow64Process. яка показує, що не запущений ваш 32-розрядний процес в режимі емуляції.
Але як ви програмно визначте, чи не запущений ваш 64-бітний процес на 64-бітної Windows? Легко. Той факт, що ваша 64-розрядна програма працює, і означає, що ви запущені на 64-розрядної Windows! Якби ви були на 32-розрядної машині, ваш код не зміг би запуститися.
Це все одно, що питати: "стану живлення комп'ютера?". Якби він був вимкнений, ваша програма не змогла б задати питання.
Звичайно ж, якщо вам потрібен єдиний вихідний текст для компіляції і в 32-розрядну програму і в 64-розрядну, то вам потрібно зробити трохи більше роботи: Я додав гілку для 16-бітних програм на випадок, якщо ви досить божевільний, щоб писати їх сьогодні.
Примітка перекладача: оскільки в Delphi поки немає 64-розрядної компілятора, то невідомо, як будуть називатися відповідні директиви. Тому я взяв директиви від FreePascal.
Величезне спасибі перекладачеві за праці з перекладу статей! Куждий новий переклад чекаю з нетерпінням)
Маразм повний, для визначення системи і процесора є відповідні функції WinAPI
SYSTEM_INFO si;
GetSystemInfo (si);
GetNativeSystemInfo (si);
GetNativeSystemInfo - не дуже вдале рішення, тому що ви не можете передбачити майбутні архітектури, в той час як IsWow64Process буде працювати і зараз і для будь-яких потенційних майбутніх платформ.
Про використання IsWow64Process для визначення розрядності системи, до речі, сказано в самому описі GetNativeSystemInfo.