I'm compiling a program on my 64bit machine, but I'm not sure if it produces 32-bit or 64-bit output.. How can I check if a file is 32bit or 64bit on Windows?
+1
A:
Just run it and have a look at the Processes tab in Windows Task Manager. If there is a *32 suffix after the process name, it's 32-bit, otherwise it's 64-bit (provided you're on a 64-bit OS).
Stefan Schultze
2010-04-21 12:34:47
Well yes that'll work but it's not entirely sensible to just run a program to find out whether it's 32 or 64 bit. Also, you may not have a 64 bit machine to do that with.
kaerast
2010-04-21 12:38:53
if you only have a 32bit machine then it would not run if it was a 64bit app!
JamesRyan
2010-04-21 15:31:58
+1
A:
You could run the 'file' command from linux in a cygwin environment to test.
You could also place some debug statement like 'print sizeof(int)' (schematically) to check.
Frank Meulenaar
2010-04-21 12:46:07
Sounds like a terrific idea. I'm running Cygwin, but when I try using "file" it says "command not found". Is this actually available on Cygwin? If so I guess I must've forgotten to install some package..?
stiank81
2010-04-21 12:54:57
See http://cygwin.com/faq/faq.setup.html#faq.setup.what-packages
Frank Meulenaar
2010-04-21 13:31:06
+4
A:
You can use GNUfile for windows.
You can run the app thru PEID
Lastly (and preferred- less room for error)
With either Visual Studio C++ (at least express edition minimum) or the Platform SDK installed you can use dumpbin /headers to look at the PE header values.
The first value in the file header tells you the architecture: either 0x14C for x86 or 0x8664 for x64
Jim B
2010-04-21 13:49:10
Works fine! Didn't bother running it through PEID etc though. Ran with Cygwin. Works just fine. And it doesn't say 0x14C/0x86664, but PE32 for x86 and PE32+ for x64.
stiank81
2010-04-26 08:56:45