用这样的方法来实现软件的版本控制,那位有好的方法或建议,不防说一下,除CPU以外的其它东西也可以,只要是常用设备就可以。多谢!

解决方案 »

  1.   

    getcpuid 
    {
    _asm
    {
    xor eax,eax
    cpuid
    mov dword ptr vendor_id,ebx
    mov dword ptr vendor_id[+4],edx
    mov dword ptr vendor_id[+8],ecx
    }
    printf("%s-",vendor_id); _asm
    {
    mov eax,01h
    xor edx,edx
    cpuid
    mov s1,edx
    mov s2,eax
    }
    printf("%08X\n%08X-",s1,s2);
    _asm
    {
    mov eax,03h
    xor ecx,ecx
    xor edx,edx
    cpuid
    mov s1,edx
    mov s2,ecx
    }
    }
      

  2.   

    回复人: masterz(MS MVP) ( ) 信誉:198  2003-8-17 1:45:17  得分:100 
     
     
      
    mov eax,01h
    ;eax =1返回的是feature flag
    http://www.intel.com/design/Pentium4/manuals/24547012.pdf
    page 320
    Feature flags returned in EDXeax=03h ;return CPU serial number
    __asm{ mov eax,03h
    xor ecx,ecx
    xor edx,edx
    cpuid
    mov s1,edx
    mov s2,ecx
    }
    EAX Researved
    EBX Researved
    ECX Bits00-31 of 96 bit processor serial number(Available in Pentium 3 only)
    EDX Bits32-63 of 96 bit processor serial number(Available in Pentium 3 only)
      
     
      

  3.   

    忘了问各位,以上程序读到的CPU的ID一般情况下是一些什么数据的组合,比如数字,字符,还是什么其它的东西。谢谢。
      

  4.   

    对了,又想起一个问题,地不是INTEL的CPU上面的程序是不是不行呢,那有没有什么任何机上都可能用的东西,
      

  5.   

    难道每个cpu的数据都是不一样的吗?可以做为key使用吗?
      

  6.   

    http://www.vckbase.com/bbs/prime/viewprime.asp?id=351
    http://www.vckbase.com/bbs/prime/viewprime.asp?id=352http://expert.csdn.net/Expert/topic/2309/2309423.xml?temp=.0920679
      

  7.   

    _asm{
        mov eax,00h; 0 取CPU ID,1..等分别取CPU主频、MMX、SE等数据。
        cpuid
        .......; 返回结果一般存放在ecx,edx等中,请查相关资料。
    }