1

In Richter's "CLR via CSharp" book there is a following table explaining how application built in different ways will run on various versions on Windows. It says that application built with x86 platform switch will run on 64-bit OS as a WoW64 application which is perfectly fine, but it also tells that with anycpu32bitpreferred switch it will run as a 32-bit application. So the question is how 32-bit application can run on 64-bit OS other than as a WoW64?

enter image description here

Grigoryants Artem
  • 1,401
  • 2
  • 15
  • 32
  • I believe it is a typo in the table (the "Runs as a 32-bit application" at the intersection of anycpu32bitpreferred and x64 should read "Runs as a WoW64 application"). Then again, it can be the other way round too (the "Runs as a WoW64 application" could be "Runs as a 32-bit application", because *the* way to run a 32-bit application on x64 is WoW64, thus saying "as 32-bit" already implies the use of WoW). – GSerg Sep 04 '19 at 06:59
  • The table is outdated, Windows RT is dead and a column for 64-bit ARM platforms is missing. A 32-bit app always needs the wow64 emulator, on ARM as well. Otherwise the reason that the "Prefer 32-bit" option got added, targeting x86 doesn't make much sense on an ARM device. – Hans Passant Sep 04 '19 at 09:18

1 Answers1

3

This is a typo. It's mentioned in the errata for the book:

Page 10, Table 1-2, second row, x64 Windows column

Reads: Runs as a 32-bit application

Should read: Runs as a WoW64 application

Date corrected: 3/8/2013

Community
  • 1
  • 1
Luaan
  • 62,244
  • 7
  • 97
  • 116