本文最后更新于:2024年5月7日 下午
C++ 工程中可能会用到系统信息,本文记录获取方法。
获取方法
使用 GetSystemInfo
函数获得系统信息
示例代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
| #include
#include
int main(int argc, PCHAR argv[]){
SYSTEM_INFO si;
GetSystemInfo(&si);
if (si.wProcessorArchitecture == PROCESSOR_ARCHITECTURE_AMD64){
printf("处理器架构: X64(AMD or Intel)\n");
} else if (si.wProcessorArchitecture == PROCESSOR_ARCHITECTURE_ARM){
printf("处理器架构: AMD\n");
} else if (si.wProcessorArchitecture == PROCESSOR_ARCHITECTURE_IA64){
printf("处理器架构: Intel 服务器\n");
} else if (si.wProcessorArchitecture == PROCESSOR_ARCHITECTURE_INTEL){
printf("处理器架构: X86\n");
} else{
printf("处理器架构: 未知的架构\n");
}
printf("程序或DLL最低可用内存地址: 0x%X\n", si.lpMinimumApplicationAddress);
printf("程序或DLL最高可用内存地址: 0x%X\n", si.lpMaximumApplicationAddress);
printf("配置到系统的处理器: %d 15 = 0000 0000 0000 0000 0000 0000 0000 1111\n", si.dwActiveProcessorMask);
printf("当前组中的逻辑处理器个数: %d 个\n", si.dwNumberOfProcessors);
printf("页面分配粒度: 0x%x 字节\n", si.dwPageSize);
printf("虚拟内存分配粒度: 0x%x 字节\n", si.dwAllocationGranularity);
if (si.wProcessorArchitecture == PROCESSOR_ARCHITECTURE_INTEL){
printf("依赖架构的处理器级别: %d [仅用于显示][由CPU供应商定义]\n", si.wProcessorLevel);
}
if (si.wProcessorArchitecture == PROCESSOR_ARCHITECTURE_IA64){
printf("依赖架构的处理器级别: %d [仅用于显示][设置为1]\n", si.wProcessorLevel);
}
printf("处理器的型号: %X\n", si.wProcessorRevision);
getchar();
return 0; }
|
本机输出:
1 2 3 4 5 6 7 8
| 处理器架构: X64(AMD or Intel) 程序或DLL最低可用内存地址: 0x10000 程序或DLL最高可用内存地址: 0xFFFEFFFF 配置到系统的处理器: 4095 15 = 0000 0000 0000 0000 0000 0000 0000 1111 当前组中的逻辑处理器个数: 12 个 页面分配粒度: 0x1000 字节 虚拟内存分配粒度: 0x10000 字节 处理器的型号: 9E0A
|
参考资料
文章链接:
https://www.zywvvd.com/notes/coding/cpp/cpp-getsystem-info/getsystem-info/