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

这是一个相当受欢迎的问题,但所有的答案几乎都说:“使用IsWow64Process函数”。 如果应用程序是64位的,则返回FALSE。 我想要一个解决scheme,不pipe我的应用程序的位。

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