獲取CPU信息的問題
有不有哪位大哥談談獲取CPU的信息﹐包括廠商﹑型號﹑主頻的方法?
我找了一些資料﹐大致看出有如下方法﹕
1.利用PDH.dll﹐但好像只能在WinNT上實現﹐我需要在98/NT上都可實現。
2.如上面兄弟所說的用SYSTEM_INFO Si;這樣的方法來獲得的信息好像很有限.
3.用QueryPerformanceFrequency()這樣一些API獲取的值來計算。
我這里在codeguru上找了一段例子﹕
AUDITDLLEXIM long _stdcall GetProcessorClockSpeed(ULARGE_INTEGER &Hz)
{
unsigned __int64 start, stop;
unsigned __int64 nCtr, nFreq, nCtrStop;
QueryPerformanceFrequency((LARGE_INTEGER *)&nFreq);
__asm // inline assembly code block
{
_emit 0x0F
_emit 0x31
mov DWORD PTR start, eax
mov DWORD PTR [start+4], edx
}
QueryPerformanceCounter((LARGE_INTEGER *)&nCtrStop);
nCtrStop += nFreq;
do
QueryPerformanceCounter((LARGE_INTEGER *)&nCtr);
while (nCtr < nCtrStop);
__asm // inline assembly code block
{
_emit 0x0F
_emit 0x31
mov DWORD PTR stop, eax
mov DWORD PTR [stop+4], edx
}
Hz.QuadPart = (stop-start); // populate the 64bit part of the pointer
if ( Hz.QuadPart > 0 )
return 1;
else
return 0;
} // EOF GetProcessorClockSpeed()
但好像通不過。
請各高手指點一下﹐多謝﹗