我如何知道我是否使用Windows API?

时间:2017-03-16 19:25:24

标签: c windows

如何检查运行我的程序的系统是基于arm还是不使用c / c ++?

2 个答案:

答案 0 :(得分:2)

以下是您要找的内容,

#include <stdio.h>
#include <windows.h>

int main(void)
{

    SYSTEM_INFO SystemInfo;
    GetSystemInfo(&SystemInfo);

    if(SystemInfo.wProcessorArchitecture == PROCESSOR_ARCHITECTURE_ARM)
    {
        // System's processor is ARM based
    }

    return 0;
}

修改:正如Anders建议的那样,使用GetNativeSystemInfo可获得更好,更准确的结果。

答案 1 :(得分:0)

如果您想知道您是否正在为ARM编译,那么您可以检查是否定义了_M_ARM

如果你是一个x86应用程序,并且想知道你是否在ARM机器上运行模拟(实际上除maybe soon之外还不可行?),那么你可以调用GetNativeSystemInfo并检查{{ 1}} field。

您不应该按照其他答案中的建议调用wProcessorArchitecture,因为当x86应用程序在ARM上运行时,它很可能会说谎并返回PROCESSOR_ARCHITECTURE_INTEL。