SYSTEM_INFO
时间: 2023-06-22 18:41:46 浏览: 48
`SYSTEM_INFO`是Windows API中的一个结构体,用于存储系统的基本信息,包括处理器架构、处理器数量、页面大小等。
`SYSTEM_INFO`结构体的定义如下:
```cpp
typedef struct _SYSTEM_INFO {
union {
DWORD dwOemId;
struct {
WORD wProcessorArchitecture;
WORD wReserved;
};
};
DWORD dwPageSize;
LPVOID lpMinimumApplicationAddress;
LPVOID lpMaximumApplicationAddress;
DWORD_PTR dwActiveProcessorMask;
DWORD dwNumberOfProcessors;
DWORD dwProcessorType;
DWORD dwAllocationGranularity;
WORD wProcessorLevel;
WORD wProcessorRevision;
} SYSTEM_INFO, *LPSYSTEM_INFO;
```
`SYSTEM_INFO`结构体包含了许多成员,其中比较重要的成员有:
- `wProcessorArchitecture`:处理器架构,值为PROCESSOR_ARCHITECTURE_AMD64(表示x64架构)或PROCESSOR_ARCHITECTURE_INTEL(表示x86架构)。
- `dwNumberOfProcessors`:处理器数量。
- `dwPageSize`:页面大小。
- `dwAllocationGranularity`:内存分配粒度。
下面是一个示例程序,演示如何使用`SYSTEM_INFO`结构体获取系统信息:
```cpp
#include <iostream>
#include <windows.h>
int main()
{
SYSTEM_INFO sysInfo;
GetSystemInfo(&sysInfo);
std::cout << "Processor Architecture: ";
switch (sysInfo.wProcessorArchitecture)
{
case PROCESSOR_ARCHITECTURE_AMD64:
std::cout << "x64" << std::endl;
break;
case PROCESSOR_ARCHITECTURE_INTEL:
std::cout << "x86" << std::endl;
break;
default:
std::cout << "Unknown" << std::endl;
break;
}
std::cout << "Number of Processors: " << sysInfo.dwNumberOfProcessors << std::endl;
std::cout << "Page Size: " << sysInfo.dwPageSize << " bytes" << std::endl;
return 0;
}
```
在上述示例中,我们首先定义了一个`SYSTEM_INFO`结构体变量`sysInfo`,然后调用`GetSystemInfo`函数将系统信息写入该结构体中。最后,我们输出了一些系统信息,包括处理器架构、处理器数量、页面大小等。
需要注意的是,使用`SYSTEM_INFO`结构体需要包含Windows.h头文件。