jblaox
جمعه 14 شهریور 1393, 18:48 عصر
سلام
من قبلا توی ویژوال استدیو به راحتی میتوانستم سریال هارد دیسک و CPU را پیدا کنم اما الان هر کدی را که توی c++ وجود داره میبرم توی QT جواب نمیده و کار نمیکنه ...
مثلا :
#ifndef CPUID_H #define CPUID_H
#ifdef _WIN32 #include <limits.h> typedef unsigned __int32 uint32_t;
#else #include <stdint.h> #endif
class CPUID { uint32_t regs[4];
public: void load(unsigned i) { #ifdef _WIN32 __cpuid((int *)regs, (int)i);
#else asm volatile ("cpuid" : "=a" (regs[0]), "=b" (regs[1]), "=c" (regs[2]), "=d" (regs[3]) : "a" (i), "c" (0)); // ECX is set to zero for CPUID function 4 #endif }
const uint32_t &EAX() const {return regs[0];} const uint32_t &EBX() const {return regs[1];} const uint32_t &ECX() const {return regs[2];} const uint32_t &EDX() const {return regs[3];} };
#endif // CPUID_H
در مین :
CPUID cpuID; cpuID.load(0); // Get CPU vendor
QString vendor; vendor += QString((const char *)&cpuID.EBX(), 4); vendor += QString((const char *)&cpuID.EDX(), 4); vendor += QString((const char *)&cpuID.ECX(), 4);
std::cout << "CPU vendor = " << vendor << endl;
کسی تکه کدی نداره توی QT مثل آدم کار کنه و سریال سخت افزار مثل هارد یا مادربورد یا CPU پس بده ...
من قبلا توی ویژوال استدیو به راحتی میتوانستم سریال هارد دیسک و CPU را پیدا کنم اما الان هر کدی را که توی c++ وجود داره میبرم توی QT جواب نمیده و کار نمیکنه ...
مثلا :
#ifndef CPUID_H #define CPUID_H
#ifdef _WIN32 #include <limits.h> typedef unsigned __int32 uint32_t;
#else #include <stdint.h> #endif
class CPUID { uint32_t regs[4];
public: void load(unsigned i) { #ifdef _WIN32 __cpuid((int *)regs, (int)i);
#else asm volatile ("cpuid" : "=a" (regs[0]), "=b" (regs[1]), "=c" (regs[2]), "=d" (regs[3]) : "a" (i), "c" (0)); // ECX is set to zero for CPUID function 4 #endif }
const uint32_t &EAX() const {return regs[0];} const uint32_t &EBX() const {return regs[1];} const uint32_t &ECX() const {return regs[2];} const uint32_t &EDX() const {return regs[3];} };
#endif // CPUID_H
در مین :
CPUID cpuID; cpuID.load(0); // Get CPU vendor
QString vendor; vendor += QString((const char *)&cpuID.EBX(), 4); vendor += QString((const char *)&cpuID.EDX(), 4); vendor += QString((const char *)&cpuID.ECX(), 4);
std::cout << "CPU vendor = " << vendor << endl;
کسی تکه کدی نداره توی QT مثل آدم کار کنه و سریال سخت افزار مثل هارد یا مادربورد یا CPU پس بده ...