Visual Studio C++ 编译器 provides 命令行编译器选项 /favor:AMD64
和 /favor:INTEL64
分别针对 AMD64 或 Intel64 处理器进行优化。现在,术语 AMD64 和 Intel64 are essentially interchangeable 用于大多数用途,但编译器可以针对 are some differences 进行优化。
在 Microsoft Windows 7 上,是否有一种可靠的方法可以在应用程序安装时检查我们是在 AMD64 还是 INTEL64 系统上安装?
我正在为安装程序使用 InnoSetup 和 WiX,并且我正在推测基于 AMD64 或 INTEL64 CPU 选择要安装的版本。
编辑:回顾一些笔记
最后,RRUZ 和 Andrew Cooper 的答案都为解决这个问题提供了很好的可靠策略,但由于它们都不是真正坚定的 future 证明,我个人将坚持使用默认的 /favor:blend
用于我的项目。
最佳答案
您可以使用 Win32_Processor
WMi 类,从 Inno setup 中,您可以毫无问题地执行 WMI 查询。检查此示例:
var
FSWbemLocator : Variant;
FWMIService : Variant;
FWbemObject : Variant;
begin
FSWbemLocator := CreateOleObject('WBEMScripting.SWBEMLocator');
FWMIService := FSWbemLocator.ConnectServer('', 'root\CIMV2', '', '');
FWbemObject := FWMIService.Get('Win32_Processor');
if FWbemObject.Architecture=9 then //is a 64 bits processor
if FWbemObject.Family=131 then //all 64-bit AMD processors are identified by using a Family attribute value of 0x83 (131).
从这里您可以使用架构、系列、制造商和其他属性来确定处理器类型。
关于visual-c++ - 确定处理器是 AMD64 还是 Intel64?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10492484/