In 64-bit Windows versions, is there a way I can tell if an executable requires 64-bit to launch?
I'm looking for a better way than Process Explorer to find out, preferrably BEFORE launching.
EDIT: So how would I know that an application requires Win64 environment?
The processor architecture flag in the header of an EXE or DLL will tell you. The PEDUMP utility (http://www.wheaty.net/downloads.htm) will dump that entry. In the "File Header" section, look at "Machine". The i386 (32-bit Intel) flag is 0x014c. The 64-bit x86 flag is 0x8664.
See also: https://stackoverflow.com/questions/197951/how-can-i-determine-for-which-platform-an-executable-is-compiled/198009
Another simple way is to use PESnoop:
One place to get PESnoop is here: http://www.prestosoft.com/download/plugins/PESnoop.zip
And for you GUI enthusiasts, the absolute easiest way is to install this Explorer extension:
http://www.silurian.com/win32/inspect.htm
Some vendors will also put meta information in the file that will indicate that it's a 64-bit binary. Get the properties on a .exe and look at the version tab. For example, SQL Server 2005 says "SQL Server Windows NT - 64 Bit" in the description. It also has other information indicating 64-bit in fields under "Other version information". This would be up to the vendor, however.