How to tell if a .exe file is a 32-bit or 64-bit application using dumpbin

Goodfolk,

One of my customers wanted to know if they had really built a 64-bit application for their cluster. After all, we run WIndows HPC Server on a 64-bit server OS, so why not take full advantage of it?

I had a few minutes before I had to get back to them so I thought I'd try to polish the answer a bit. Here's what I told him: "Dumpbin is your friend."

Here's what I then provided as a really simple 'tool'. A one liner actually. If and only if you have

C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\bin\amd64

in your path. See my blog on compiling with Visual Studio from Powershell. This works fine from the old command line shell as well.

------------------------------------------------------------------------------------------------------------------------------------------------------

Windows PowerShell
Copyright (C) 2006 Microsoft Corporation. All rights reserved.

PS C:\Home\fchism> .\pVSvars.ps1
PS C:\Home\fchism> cd PGI
PS C:\Home\fchism\PGI> dir

    Directory: Microsoft.PowerShell.Core\FileSystem::C:\Home\fchism\PGI

Mode                LastWriteTime     Length Name
----                -------------     ------ ----
d----         2/17/2009   2:54 PM            OSBench
d----         2/10/2009   4:17 PM            POP_PVF
-a---         3/26/2009   4:59 PM     135680 Hi.dwf
-a---         3/26/2009   4:59 PM     391168 Hi.exe
-a---         2/11/2009  11:00 AM         73 Hi.f
-a---         3/26/2009   4:59 PM    1436672 Hi.pdb
-a---         2/10/2009   4:31 PM  175156824 pgivfx64-vs2008-803.exe
-a---         2/10/2009  10:34 AM    1123401 pgi_whitepaper_unix2win.pdf
-a---         2/10/2009   4:08 PM    3526334 POP_PVF.zip

PS C:\Home\fchism\PGI> dumpbin /headers Hi.exe|findstr "magic machine"
            8664 machine (x64)
             20B magic # (PE32+)
PS C:\Home\fchism\PGI> cd C:\UnixUtilities
PS C:\UnixUtilities> dumpbin /headers zsh.exe|findstr "magic machine"
             14C machine (x86)
                   32 bit word machine
             10B magic # (PE32)
PS C:\UnixUtilities> cd ..\Home\fchism
PS C:\Home\fchism> more pVSvars.ps1
# Set up Visual Studio Variables for Powershell

--------------------------------------------------------------------------------------------------------------------------------------------------

A magic machine indeed! You can get dumpbin with any version of Visual Studio. If you don't have a commercial version go to http://www.microsoft.com/express/ .

Well short but I hope you find this to be a sweet hack.

 

Frankie