请教,先到先得分!

解决方案 »

  1.   

    以前我写过一个读CPU ID的程序要我发给你,EMAIL?
      

  2.   

    算了,我把主要的一个函数给你就行:
    *************************************void CMyTestDlg::GetCUPId(CString& strMsg)
    {
    CString strtmp;
    TCHAR OEMString[13]; _asm
    {
    mov eax,0
    cpuid
    mov DWORD PTR OEMString,ebx
    mov DWORD PTR OEMString+4,edx
    mov DWORD PTR OEMString+8,ecx
    mov BYTE PTR OEMString+12,0
    }
    strMsg.Format(_T("This CPU 's OEM String is: %s \n"),OEMString);
    TRACE(strMsg.GetBuffer(0)); int iEAXValue,iEBXValue,iECXValue,iEDXValue;
    _asm
    {
    mov eax,1
    cpuid
    mov iEAXValue,eax
    mov iEBXValue,ebx
    mov iECXValue,ecx
    mov iEDXValue,edx
    } if(iEDXValue&0x800000)
    {
    strtmp = _T("This is MMX CPU\n");
    strMsg += strtmp;
    TRACE(strtmp.GetBuffer(0));
    }
    else
    {
    strtmp = _T("None MMX Support.\n");
    strMsg += strtmp;
    TRACE(strtmp.GetBuffer(0));
    } int iCPUFamily=(0xf00 & iEAXValue) >>8; strtmp.Format(_T("CPU Family is: %d \n"),iCPUFamily);
    strMsg += strtmp;
    TRACE(strtmp.GetBuffer(0)); _asm
    {
    mov eax,2
         CPUID
    mov iEAXValue,eax
    }
    int ial = iEAXValue & 0xf;
    if(ial==1)
    {
    strtmp = _T("Pentium Pro or Pentium II Found\n");
    strMsg += strtmp;
    TRACE(strtmp.GetBuffer(0));
    }
    }