windows程式設計學習——獲取系統資訊
(1) GetSystemInfo函式
功能:返回關於當前系統的資訊。
函式原型:
void WINAPI GetSystemInfo
(
_Out_ LPSYSTEM_INFO lpSystemInfo//LPSYSTEM_INFO結構體指標
);
SYSTEM_INFO結構體
功能:包括當前計算機的資訊。這個資訊包括計算機的體系結構、中央處理器的型別、系統中中央處理器的數量、頁面的大小以及其他資訊。
原型:
typedef struct _SYSTEM_INFO {
union{
DWORD dwOemId;//已經廢棄的成員
struct {
WORD wProcessorArchitecture;//指定系統中的中央處理器的體系結構
WORD wReserved;//保留位
};
};
DWORD dwPageSize;//指定頁面的大小和頁面保護和委託的顆粒。這是被 VirtualAlloc 函式使用的頁大小
LPVOID lpMinimumApplicationAddress;//指向應用程式和動態連結庫(DLL)可以訪問的最低記憶體地址
LPVOID lpMaximumApplicationAddress;//指向應用程式和動態連結庫(DLL)可以訪問的最高記憶體地址
DWORD dwActiveProcessorMask;//指定一個用來代表這個系統中裝配了的中央處理器的掩碼。二進位制0位是處理器0;31位是處理器31
DWORD dwNumberOfProcessors;//指定系統中的處理器的數目
DWORD dwProcessorType;//指定系統中中央處理器的型別
DWORD dwAllocationGranularity;//指定已經被分配的虛擬記憶體空間的粒度
WORD wProcessorLevel;//指定系統體系結構依賴的處理器級別
WORD wProcessorRevision;//指定系統體系結構依賴的處理器修訂版本號
}SYSTEM_INFO;
(2)下面是GetSystemInfo函式應用的具體程式碼:
#include <Windows.h> #include <stdio.h> int GetProcessorNum(void); int main() { int iProcessNum; iProcessNum = GetProcessorNum(); printf("本系統處理器個數為:%d\n",iProcessNum); getchar(); return 0; } int GetProcessorNum(void) { SYSTEM_INFO sysInfo; //定義系統資訊的結構體 GetSystemInfo(&sysInfo); printf("中央處理器的體系結構為%d\n",sysInfo.wProcessorArchitecture); //獲取系統資訊 printf("系統頁面大小為%d\n",sysInfo.dwPageSize); printf("系統處理器數量%d\n",sysInfo.dwNumberOfProcessors); printf("已經被分配的虛擬記憶體空間的粒度%d\n",sysInfo.dwAllocationGranularity); return sysInfo.dwNumberOfProcessors; }