【发布时间】:2015-07-21 11:49:11
【问题描述】:
我正在尝试获取一个打印出 CPU 名称/供应商的函数,但是当我尝试它时,我最终得到了“GenuntellineI”。
函数如下:
void PrintProcessingDeviceType()
{
uint32_t regs[4];
#ifdef _WIN32
__cpuid((int*)regs, 0);
#else
asm volatile ("cpuid" : "=a" (regs[0]), "=b" (regs[1]), "=c" (regs[2]), "=d" (regs[3]) : "a" (0), "c" (0));
#endif
std::cout << std::string((const char*)®s, 16) << std::endl;
}
两个路径(定义了 _WIN32 和未定义的路径)都会导致发生此错误。这是 CPUID 不正确的问题,是我做错了什么,还是什么?
【问题讨论】:
-
尝试运行 msdn 示例,看看错误是否仍然存在:msdn.microsoft.com/en-us/library/…
-
@BetaCarotin 当我尝试编译 MSDN 示例时,我收到错误“__cpuidex 未在此范围内声明”。所以这是不可能的。