C/C++获取CPU相关信息(非WMI)
生活随笔
收集整理的這篇文章主要介紹了
C/C++获取CPU相关信息(非WMI)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
話不多說,先看運行截圖:
代碼如下:
#include <iostream> #include <string> #include <windows.h>//存4個寄存器值 DWORD deax, debx, decx, dedx; void initCpu(DWORD veax) {__asm{mov eax, veaxcpuidmov deax, eaxmov debx, ebxmov decx, ecxmov dedx, edx} }long getCpuFreq() {int start, over;_asm{RDTSCmov start, eax}Sleep(50);_asm{RDTSCmov over, eax}return (over - start) / 50000; }std::string getManufactureID() {char manuID[25];memset(manuID, 0, sizeof(manuID));initCpu(0);memcpy(manuID + 0, &debx, 4); // copy to array memcpy(manuID + 4, &dedx, 4);memcpy(manuID + 8, &decx, 4);return manuID; }std::string getCpuType() {const DWORD id = 0x80000002; char cpuType[49];memset(cpuType, 0, sizeof(cpuType));for (DWORD t = 0; t < 3; t++){initCpu(id + t);memcpy(cpuType + 16 * t + 0, &deax, 4);memcpy(cpuType + 16 * t + 4, &debx, 4);memcpy(cpuType + 16 * t + 8, &decx, 4);memcpy(cpuType + 16 * t + 12, &dedx, 4);}return cpuType; }void getCpuInfo(){std::cout << "CPU主頻: " << getCpuFreq() << "MHz" << std::endl;std::cout << "CPU廠商: " << getManufactureID() << std::endl;std::cout << "CPU類型: " << getCpuType() << std::endl; }void main(){getCpuInfo();system("pause");return; }總結
以上是生活随笔為你收集整理的C/C++获取CPU相关信息(非WMI)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python学习笔记-第一个Python
- 下一篇: Qt学习笔记-Qt Graphic Vi