繁体   English   中英

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

[英]How do I know if I am using ARM using Windows API?

如何检查运行我的程序的系统是否基于机械臂或不使用c / c ++?

这就是您要寻找的

#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获得更好和准确的结果。

如果您想知道您是否正在为ARM进行编译,则可以检查是否已定义_M_ARM

如果您是x86应用程序,并且想知道您是否在ARM机器上运行了仿真程序(实际上还不可能,但是可能很快吗?),那么您将调用GetNativeSystemInfo并检查wProcessorArchitecture字段。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM