Ahoj,
na netu jsem hledal, jak získat nějaká data o procesoru. Potřebuji nějaké 20B ID, jen pro kontrolu licence. Něco jsem našel a překopal jsem to podle svých potřeb. V konzoli mi normálně b[20] naplní (pokaždé stejně, samozřejmě) . Ve WinAPI mi to padá. Programuji v C (ne c++) (PellesC). Tomu asemblerovskému kódu vůbec nerozumím, máte nápady, co mám nastavit, změnit či tak? Fakt nic mi to neříká...
char VendorID[13];
unsigned char Brand;
unsigned long VersionInfo;
unsigned long FeatureInfo;
_asm
{
mov eax,0
cpuid //CPUID Instruction
mov dword ptr [VendorID],ebx
mov dword ptr [VendorID+4],edx
mov dword ptr [VendorID+8],ecx
mov byte ptr [VendorID+12],0
}
_asm
{
mov eax,1
cpuid //CPUID Instruction
mov VersionInfo,eax //Store Version Information
mov FeatureInfo,edx //Store Feature Information
mov Brand,bl //Store Brand Information
}
BYTE b[20];
memcpy(b,&VersionInfo,4);
memcpy(b+4,VendorID,11);
b[15]=Brand;
memcpy(b+16,&FeatureInfo,4);
Díky za nápady.