如何检查运行我的程序的系统是基于arm还是不使用c / c ++?
答案 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。