CPU型号是什么 c获取cpu型号( 二 )

  
returndwcpuspeed;  
还有一点,我在网上看到和你要求差不多的文章,但是它的代码好像少了一点什么,也做一下参考,我们一起研究一下也好 。  
这是那个的链接,主要是没有头文件和宏什么的 。  
用C语言怎么得到电脑的CPU序列号,硬盘序列号等信息  
获取CPU序列号要使用 汇编指令  
static DWORD g_eax;// 存储返回的eax  
static DWORD g_ebx;// 存储返回的ebx  
static DWORD g_ecx;// 存储返回的ecx  
static DWORD g_edx;// 存储返回的edx  
void Executecpuid(DWORD veax)  
asm(“cpuid”  
:”=a”(g_eax),  
“=b”(g_ebx),  
“=c”(g_ecx),  
“=d”(g_edx)  
:”a”(g_eax));  
int isSupport;  
void GetSerialNumber(WORD nibble[6])  
Executecpuid(1);// 执行cpuid,参数为 eax = 1  
isSupport = g_edx & (1<<18); // edx是否为1代表CPU是否存在序列号  
if (FALSE == isSupport)// 不支持,返回false  
{  
return ;  
}  
Executecpuid(3);// 执行cpuid,参数为 eax = 3  
memcpy(&nibble[4], &g_eax, 4); // eax为最高位的两个WORD  
memcpy(&nibble[0], &g_ecx, 8); // ecx 和 edx为低位的4个WORD  
}说实话,我在图书馆里看过一本叫《c语言编程实战105例》的一本书,是半年前看的,那里面有相关的代码,但是你要cpu号这种高级的东东就不好办了 。我从昨天开始想你的问题 。也没有什么进展,就到网上就找了找,发现网上有关于这方面的贴子,但那位高手用的是linux的环境做的,在win下不能运行,  
这个是那个贴的链接 。可能对你有点用吧 。  
对了要求cpu的序列号的话是要一个api及相关的库,要是没用这个是不可能做出正来的 。我从别的地方搞了一个cpu信息函数,对你有用的:  
dwordmycpuspeed()  
bstrbstrmycpuname=null;  
bstrbstrmypropname=null;  
variantpval;  
charsztext[256];  
intncpunum=0;  
dworddwcpuspeed=0;  
iwbemclassobject*pcpuinst=null;  
iwbemqualifierset*pqualset=null;  
bstrmypropname=sysallocstring(l”currentclockspeed”);  
if(bstrmypropname==null)  
returndwcpuspeed;  
while(1)  
memset(sztext,0,sizeof(sztext));  
sprintf(sztext,”win32_processor.deviceid=”cpu%d””,ncpunum);  
bstrmycpuname=_bstr_t(sztext);  
if(bstrmycpuname==null)  
break;  
if(psvc->getobject(bstrmycpuname,0l,null,&pcpuinst,null)!=s_ok)  
break;  
if(pcpuinst->get(bstrmypropname,0l,&pval,null,null)==s_ok)  
ncpunum++;  
dwcpuspeed+=pval.lval;  
variantclear(&pval);  
sysfreestring(bstrmycpuname);  
bstrmycpuname=null;  
if(bstrmypropname!=null)  
sysfreestring(bstrmypropname);  
bstrmypropname=null;  
if(bstrmycpuname!=null)  
sysfreestring(bstrmycpuname);  
bstrmycpuname=null;  
memset(sztext,0,sizeof(sztext));  
sprintf(sztext,”cpu个数:%d,cpu频率:%ldmhz”,ncpunum,dwcpuspeed);  
cout<<\\\\"————————\\\\"<<sztext<<\\\\"————————-\\\\"<<endl;  
returndwcpuspeed;  
还有一点,我在网上看到和你要求差不多的文章,但是它的代码好像少了一点什么,也做一下参考,我们一起研究一下也好 。  
这是那个的链接,主要是没有头文件和宏什么的 。  


特别声明:本站内容均来自网友提供或互联网,仅供参考,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。