CString GetCPUID() { CString szReturnCPUID = ""; const int SIZE = 200; char cpuid[SIZE]; unsigned long s1,s2,s3,s4; unsigned char vendor_id[13] = "************"; memset(cpuid, 0, SIZE); _asm { mov eax,01h xor edx,edx cpuid mov s1,edx mov s2,eax } _asm { mov eax,03h xor ecx,ecx xor edx,edx cpuid mov s3,edx mov s4,ecx } sprintf(cpuid, "%08X:%08X%08X%08X", s1, s2, s3, s4); _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 } sprintf(&(cpuid[strlen(cpuid)]), ":%s", vendor_id); szReturnCPUID.Format("%s", cpuid); return szReturnCPUID; } 获取CPUID的函数,在多核CPU上应该会有问题,后继更新。