I need some help to describe, in technical words, why a 64-bit application prompts a “Not a valid Win32 application” in Windows 32-bit on a 32-bit machine? Any MSDN reference is greatly appreciate it (I couldn’t google a reliable source). I know it shouldn’t run, but I have no good explanation for this.
I need some help to describe, in technical words, why a 64-bit application prompts
Share
A 32 bit OS runs in 32-bit protected mode. A 64 bit OS runs in long mode (i.e. 64-bit protected mode). 64 bit instructions (used by 64 bit programs) are only available when the CPU is in long mode; so you can’t execute them in 32-bit protected mode, in which a 32 bit OS runs.
(The above statement applies to x86 architecture)
By the way, the reason for “Not a valid Win32 application” error message is that 64 bit executables are stored in PE32+ format while 32 bit executables are stored in PE32 format. PE32+ files are not valid executables for 32 bit Windows. It cannot understand that format.