Correct way to check if Windows is 64 bit or not, on runtime? (C++)

c++, registry

Solution

Here's what Raymond Chen suggests in his blog at https://devblogs.microsoft.com/oldnewthing/20050201-00/?p=36553:

BOOL Is64BitWindows()
{
    #if defined(_WIN64)
        return TRUE;  // 64-bit programs run only on Win64
    #elif defined(_WIN32)
        // 32-bit programs run on both 32-bit and 64-bit Windows
        // so must sniff
        BOOL f64 = FALSE;
        return IsWow64Process(GetCurrentProcess(), &f64) && f64;
    #else
        return FALSE; // Win64 does not support Win16
    #endif
}

Problem

``` bool Win64bit = (sizeof(int*) == 8) ? 1 : 0; ``` I need this so my app can use Windows registry functions properly (or do i need?). So am i doing it right ?

Original source