Windows操作系统中,64位程序无法在32位系统中运行,而32位程序可以在64位系统中运行(32位程序的依赖项位于C:\Windows目录或者C:\Windows\SysWOW64目录)。
测试当前进程的运行环境:
BOOL flag;
if (IsWow64Process(GetCurrentProcess(), &flag))
{
if (flag)
printf("当前程序是32位,运行在64位的Windows上的WOW64上\n");
else
printf("当前程序是64位\n");
}
else
printf("IsWow64Process调用失败\n");
查看处理器信息:
SYSTEM_INFO sif;
GetNativeSystemInfo(&sif);
printf("处理器架构:");
switch (sif.wProcessorArchitecture)
{
case PROCESSOR_ARCHITECTURE_AMD64:
printf("x64(AMD或Intel)\n");
break;
case PROCESSOR_ARCHITECTURE_ARM:
printf("ARM\n");
case PROCESSOR_ARCHITECTURE_IA64:
printf("IA-64\n");
break;
case PROCESSOR_ARCHITECTURE_INTEL:
printf("x86\n");
break;
case PROCESSOR_ARCHITECTURE_UNKNOWN:
printf("未知\n");
break;
default:
printf("最新的处理器架构\n");
}
printf("处理器数量:%d\n",sif.dwNumberOfProcessors);
printf("页面大小:%d KB\n",sif.dwPageSize/1024);