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

标签 c++ windows winapi 64-bit

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

最佳答案

创建一个函数,为 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
}

关于c++ - 检测 C++ 应用程序是在 32 位还是 64 位 Windows 上运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17910961/

相关文章:

c++ - 如何改变窗口的音量?

delphi - Winapi.ShLwApi.StrFormatByteSize64 将我的应用程序视为 DLL

c++ - 运算符上的右值引用模板参数推导

c++ - 如何在 C++ 中重载 cout 行为?

C++,将非指针类型分配给模板类的成员指针

c++ - 如何在代码中正确使用 %USERPROFILE%?

C++ Windows Sleep() 不停止其他任务

c++ - 检查框内是否有 3D 点

windows - 在文件中查找和替换的好工具?

winapi - 导入表、导入地址表、导入名称表有什么区别?