title: Visual Studio: "Target CPU" setting in "Advanced Compiler Settings". What does it do?
body: <p>Visual Studio 2010 (paid edition) gives a selection of four target CPUs for .NET programs: AnyCPU, x86, x64 and Itanium.</p>
  
  <p>What exactly do those settings do?</p>
  
  <p>I noticed that (on a x64 Windows 7 machine), the binaries created with AnyCPU and x86 are of the same size and binaries created with x64 or Itanium are of the same size (but smaller than the first). Binaries created for x86 also appear to run in WoW64, while same-size binaries compiled for AnyCPU do not. Binaries optimised for Itanium do not run at all on Windows 7 x64 (which makes sense).</p>
  
  <p>I assume Windows runs AnyCPU binaries in whatever the native mode is (x64 in my case) and runs x86 in WoW64 on 64 bit machines (x64 and Itanium). But how do the binary sizes come in?</p>