VC++如何判断Windows系统的位数(附源码)

       今天我们来讲述一下如何判断当前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位版本

猜你喜欢

转载自blog.csdn.net/chenlycly/article/details/124836680