Блог gunsmoker-а (переклади) як програмно визначити, запущені ми на 64-розрядної windows

Як програмно визначити, запущені ми на 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.