我只想获得我的供应商ID,即在C中使用cpuid的GenuineIntel。
这是我想要使用的function:
void __cpuid(
int cpuInfo[4],
int function_id
);
这是我的错误代码:
int main(){
int cpuInfo[4];
__cpuid(cpuInfo, 1);
}
答案 0 :(得分:0)
假设您在Windows上运行,则需要在代码中添加#include <intrin.h>
。请参阅here。
答案 1 :(得分:0)
#include <string.h>
#include <locale.h>
#include <intrin.h>
#include <stdio.h>
// Prototipos
int LeeIDFabricante (char * CadFabricante);
//void LeeIDModelo (char * CadenaModelo);
int main(int argc, char *argv[])
{
char CadFabricante[0x20];
char CadenaModelo[0x40];
int Resultado;
setlocale( LC_ALL, "Spanish" );
Resultado = LeeIDFabricante(CadFabricante);
CadFabricante[12]='\0';
printf("\nLa identificacion del fabricante es: %s. El maximo valor de CPUID es %d.\n", CadFabricante, Resultado);
//LeeIDModelo(CadenaModelo);
//printf("\nLa cadena de modelo es: %s\n", CadenaModelo);
printf("\nPulse tecla RETORNO para terminar\n");
getchar();
return 0;
}
int LeeIDFabricante (char *CadFabricante)
{
int p[4] = {-1};
__cpuid(p, 0);
memset(CadFabricante, 0, sizeof(CadFabricante));
*((int*)CadFabricante) = p[1];
*((int*)(CadFabricante+4)) = p[3];
*((int*)(CadFabricante+8)) = p[2];
return p[0];
}