检测C ++应用程序是在32位还是64位Windows上运行

时间:2013-07-28 17:40:41

标签: c++ windows winapi 64-bit

这是一个相当受欢迎的问题,但所有答案都说:“使用IsWow64Process函数”。问题是,如果应用程序是64位,则返回FALSE。我想要一个无论我的应用程序的位数如何都能运行的解决方案。

1 个答案:

答案 0 :(得分:5)

为32位进程创建一个函数来调用Win32 API函数IsWow64Process(),并为64位进程返回true

bool is_64bit(void)
{
#if defined(_WIN64)
    return true;  // 64-bit programs run only on Win64
#elif defined(_WIN32)
    BOOL f64 = FALSE;
    return IsWow64Process(GetCurrentProcess(), &f64) && f64;
#endif
}