C&C++   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了使用C – 窗口的CPU ID大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我想用c获取我的电脑( windows)的cpu Id.

我使用了this code来获得它.

输出的信息如下:

For InfoType 0
cpuInfo[0] = 0x5
cpuInfo[1] = 0x756e6547
cpuInfo[2] = 0x6c65746e
cpuInfo[3] = 0x49656e69

For InfoType 1
cpuInfo[0] = 0xf31
cpuInfo[1] = 0x20800
cpuInfo[2] = 0x41d
cpuInfo[3] = 0xbfebfbff

For InfoType 2
cpuInfo[0] = 0x605b5001
cpuInfo[1] = 0x0
cpuInfo[2] = 0x0
cpuInfo[3] = 0x7c7040

For InfoType 3
cpuInfo[0] = 0x0
cpuInfo[1] = 0x0
cpuInfo[2] = 0x0
cpuInfo[3] = 0x0

For InfoType 4
cpuInfo[0] = 0x0
cpuInfo[1] = 0x0
cpuInfo[2] = 0x0
cpuInfo[3] = 0x0

For InfoType 5
cpuInfo[0] = 0x40
cpuInfo[1] = 0x40
cpuInfo[2] = 0x0
cpuInfo[3] = 0x0

For InfoType 80000000
cpuInfo[0] = 0x80000008
cpuInfo[1] = 0x0
cpuInfo[2] = 0x0
cpuInfo[3] = 0x0

For InfoType 80000001
cpuInfo[0] = 0x0
cpuInfo[1] = 0x0
cpuInfo[2] = 0x0
cpuInfo[3] = 0x0

For InfoType 80000002
cpuInfo[0] = 0x20202020
cpuInfo[1] = 0x20202020
cpuInfo[2] = 0x20202020
cpuInfo[3] = 0x20202020

For InfoType 80000003
cpuInfo[0] = 0x47202020
cpuInfo[1] = 0x69756e65
cpuInfo[2] = 0x4920656e
cpuInfo[3] = 0x6c65746e

For InfoType 80000004
cpuInfo[0] = 0x20295228
cpuInfo[1] = 0x20555043
cpuInfo[2] = 0x30382e32
cpuInfo[3] = 0x7a4847

For InfoType 80000005
cpuInfo[0] = 0x0
cpuInfo[1] = 0x0
cpuInfo[2] = 0x0
cpuInfo[3] = 0x0

For InfoType 80000006
cpuInfo[0] = 0x0
cpuInfo[1] = 0x0
cpuInfo[2] = 0x4008040
cpuInfo[3] = 0x0

For InfoType 80000007
cpuInfo[0] = 0x0
cpuInfo[1] = 0x0
cpuInfo[2] = 0x0
cpuInfo[3] = 0x0

For InfoType 80000008
cpuInfo[0] = 0x2028
cpuInfo[1] = 0x0
cpuInfo[2] = 0x0
cpuInfo[3] = 0x0

我无法理解那些是我计算机唯一cpu ID的信息.

任何人都可以帮助我.

解决方法

你的意思是“序列号”,“谁制作了处理器”,或“识别处理器的品牌和型号的字符串”.

序列号:

除非您有Pentium III,否则您没有与cpu关联的“唯一ID”.

英特尔在P3中引入了唯一的id(序列号)指令.但在对隐私产生巨大骚动之后,他们在随后的cpu版本中迅速禁用了该功能.

对于记录,在程序集中执行此功能的指令:

@H_475_11@mov eax,3 cpuid

处理器序列号是eax,edx和ecx的串联

通过传递“3”作为第二个参数,您可以使用__cpuid函数实现相同的功能.但除非您有P3,否则它将无法工作或返回序列号.

供应商(制造处理器)

int regs[4] = {0};
char vendor[13];
__cpuid(regs,0);              // mov eax,0; cpuid
memcpy(vendor,&regs[1],4);   // copy EBX
memcpy(vendor+4,&regs[3],4); // copy EDX
memcpy(vendor+8,&regs[2],4); // copy ECX
vendor[12] = '\0';
print("My cpu is a %s\n",vendor);

在您的情况下,这应该打印“GenuineIntel”.

制作和模型(BRAND字符串)

如果您需要cpuID指令的所有详细信息,包括如何获取cpu的品牌,型号和步进,以及“品牌字符串”,例如“Intel(R)Core(TM)i7-3770 cpu” @ 3.4GHZ ….“您可以通过以下链接英特尔手册.向下滚动文档以查找cpuID的文档.我懒得为你输入它.

http://www.intel.com/content/dam/www/public/us/en/documents/manuals/64-ia-32-architectures-software-developer-vol-2a-manual.pdf

@H_790_5@mSVC编译器提供的__cpuid()指令在调用cpuid指令之前将“InfoType”映射到EAX.在该指令返回后,EAX,EBX,ECX和EDX被复制到您传递给此函数cpuInfo [4]数组中.

大佬总结

以上是大佬教程为你收集整理的使用C – 窗口的CPU ID全部内容,希望文章能够帮你解决使用C – 窗口的CPU ID所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。