X86 与 X64 与任何 CPU

X86 vs X64 vs Any CPU

我对 x86x64Any CPU 配置有点困惑Visual Studio 2008 and Visual Studio 2010.

  1. 为什么 x86 可以在 64 位 Windows 7, Windows 8 上工作,甚至是 64 位操作系统的服务器配置机器?

  2. X86 vs X64 vs Any CPU:明显的区别是什么? 每个(即 x86x64Any CPU)的解释是什么?另外,因为我发现的网络资源令人困惑。

How come X86 works in 64 bit windows 7 , windows 8 and even the server configuration machines that is in 64 bit OS ?

因为 WoW64(Windows 在 Windows 64 位上)。基本上它是一个 32 位模拟器,允许您 运行 在 64 位操作系统中运行 32 位程序。

X86 vs X64 vs AnyCPU what are the clear differences ?

X86是32位应用程序的模式,以80x86系列CPU命名。一个 32 位应用程序可以寻址 4 GB 内存。

X64 是 64 位应用程序的模式,它是名称 x86-64 的缩写,即 x86 指令集的 64 位模式。一个 64 位应用程序可以寻址 18 PB(拍字节)的内存,这意味着所有可用内存(在可预见的未来)。

AnyCpu 模式允许编译为其他两种模式。

编译模式只是给JIT编译器一个指令,让其如何将IL代码编译成机器码。 IL 代码本身对于所有模式都是相同的。

Q1:Windows 的 64 位版本可以 运行 32 位 (x86) 和 64 位应用程序,这就是为什么有两个不同的 c:\Program Files 和c:\Program Files (x86) 文件夹,用于将应用程序编译为两个可用的 CPU 架构分开。

问题 2:您设置的目标 CPU 标志表明构建的编译结果针对 selected CPU 架构上的 运行 .在这种情况下,AnyCPU 意味着应用程序可以 运行 在操作系统的首选 32 位或 64 位模式下。支持 64 位模式的系统通常将其作为 运行 应用程序的首选模式。您希望能够 select 手动模式的原因是,如果您使用任何已针对特定体系结构编译的组件,则应用程序必须使用与组件相同的体系结构,在这种情况下,组件可能是 COM- 或ActiveX 控件。