Я быстро реализую этот код http://msdn.microsoft.com/en-us/library/hskdteyh(v=vs.80).aspx в мою программу, так как мне нужно было получить некоторую информацию о процессоре, однако, когда я доберусь до этой части кода:
__cpuid(CPUInfo, 0x80000000);
nExIds = CPUInfo[0];
следующий цикл for начинает выполняться бесконечно, поэтому я поставил точку останова, и количество обращений продолжало расти, оказалось, что для nExIDs устанавливается значение 2147483656, что делает выполнение остальной части кода часы, если не недели (так что это, очевидно, ошибка). Он не говорит, что функция устарела или что-то в этом роде, так что это не должно доставлять мне проблем, верно? Если это имеет отношение к *__cpuid* функция, я запускаю ее на 64-разрядной версии Windows 7 Home Premium на ноутбуке VAIO. ЦП, который я запрашиваю, является Intel(R) Core (TM) i5 CPU M 460 @ 2,53 ГГц с 2 ядрами (4 логических). Возможно, мне нужно передать другое значение, отличное от 0x80000000? Но как определить, сколько?