今天我们来讲述一下如何判断当前Windows系统是32位的还是64位的,以及判断当前32进程是否是运行在64位系统上的。
1、判断当前Windows系统是32位的还是64位的
有时我们需要知道当前Windows系统是32位的还是64位的,比如我们需要在代码中去静默安装某个安装包,这个安装包有32位版本和64位版本,如果系统是32位的,则需要安装32位安装包;如果系统是64位的,则需要安装64位版本安装包。
在获取系统位数时,大家可能会去调用系统API函数GetSystemInfo去获取,事实上使用该API函数是有问题,应该调用系统API函数GetNativeSystemInfo,相关代码如下所示:
// 当前WIndows系统是否是64位的
BOOL IsOS64()
{
SYSTEM_INFO si = { 0 };
GetNativeSystemInfo( &si );
if ( si.wProcessorArchitecture == PROCESSOR_ARCHITECTURE_AMD64
|| si.wProcessorArchitecture == PROCESSOR_ARCHITECTURE_IA64 )
{
return TRUE;
}
else
{
return FALSE;
}
}
比如我们当前要在系统中静默安装的程序分32位版本