From cbca0819a951403d444344559ff06e71e6650f22 Mon Sep 17 00:00:00 2001 From: Gabriele Contini <contini.mailing@gmail.com> Date: 周日, 15 3月 2020 11:00:50 +0800 Subject: [PATCH] fix cpuid --- src/library/os/windows/cpu_info.cpp | 13 ++++++++++--- 1 files changed, 10 insertions(+), 3 deletions(-) diff --git a/src/library/os/windows/cpu_info.cpp b/src/library/os/windows/cpu_info.cpp index 764b2fe..f4b0e81 100644 --- a/src/library/os/windows/cpu_info.cpp +++ b/src/library/os/windows/cpu_info.cpp @@ -12,6 +12,7 @@ #include "../cpu_info.hpp" namespace license { +namespace os { using namespace std; CpuInfo::CpuInfo() {} @@ -40,8 +41,14 @@ string CpuInfo::vendor() const { // hypervisor flag false, try to get the vendor name, see if it's a virtual cpu int cpui[4] = {0}; - __cpuid(cpui, 0x0); - return string(reinterpret_cast<const char *>(cpui), 12); -} + __cpuidex(cpui, 0x0, 0x0); + char vendor[13]; + memset(vendor, 0, sizeof(vendor)); + *reinterpret_cast<int *>(vendor) = cpui[1]; + *reinterpret_cast<int *>(vendor +4) = cpui[3]; + *reinterpret_cast<int *>(vendor + 8) = cpui[2]; + return string(vendor, 12); +} +} // namespace os } /* namespace license */ -- Gitblit v1.9.1