windows操作系统有32位和64位两种。
一个程序如何在运行时判断所运行的系统是32位的还是64位的?
64位操作系统上可以运行32位和64位程序。
vs2013采用Visual Studio 2013 - Windows XP (v120_xp)平台工具集编译的exe程序,既可以运行在32位操作系统上,也可以在64位操作系统上运行。
通过sizeof(int *)的值是4或8不能判断所运行系统os是32位还是64位的,
因为sizeof(指针)的运算跟编译器设置有关,
你编译的是32位的应用,sizeof(指针)是4,不管在32位os还是64位os下,
都是4。
因此采用sizeof(指针)是4还是8判断的方式不妥。
因此采用系统API函数GetNativeSystemInfo获取系统信息,根据获取的wProcessorArchitecture的值是不是PROCESSOR_ARCHITECTURE_AMD64或者PROCESSOR_ARCHITECTURE_IA64来判断,
是就是64位os,不是就32位os,
代码如下:
#include <windows.h>
#include <stdio.h>
#pragma comment(lib, "user32.lib")
int main(int argc, <