wmic cpu get processorid
std::string GetId()
{
std::string strCPUId;
unsigned long s1, s2;
char buf[32] = { 0 };
INT32 Infobuf[4];
#if defined(_WIN64)// 64位下不支持内联汇编. 应使用__cpuid、__cpuidex等Intrinsics函数。
__cpuid(Infobuf, 1);
s1 = Infobuf[3];
s2 = Infobuf[0];
#else
__asm{mov eax, 01hxor ecx, ecxxor edx, edxcpuidmov s1, edxmov s2, ecx}
#endif
if (s1)
{
memset(buf, 0, 32);
sprintf_s(buf, 32, "%08X", s1);
strCPUId += buf;
}
if (s2){
memset(buf, 0, 32);
sprintf_s(buf, 32, "%08X", s2);
strCPUId += buf;
}
#if defined(_WIN64)// 64位下不支持内联汇编. 应使用__cpuid、__cpuidex等Intrinsics函数。
__cpuid(Infobuf, 3);
s1 = Infobuf[3];
s2 = Infobuf[0];
#else
__asm{mov eax, 03hxor ecx, ecxxor edx, edxcpuidmov s1, edxmov s2, ecx}
#endif
if (s1)
{
memset(buf, 0, 32);
sprintf_s(buf, 32, "%08X", s1);
strCPUId += buf;
}
if (s2)
{
memset(buf, 0, 32);
sprintf_s(buf, 32, "%08X", s2);
strCPUId += buf;
}
return strCPUId;
}