From: Bad Roy on
I think I have finally gotten my Visual C++ Express 2008 to
use the 64-bit compiler in the Windows 7 SDK. I THINK! But I want to
make sure. I've compiled some programs with the 'target platform' set
to x64 in VC Express, but how do I tell if they really compiled into
AMD64 code?

Thanks,
Roy
From: BGB / cr88192 on

"Bad Roy" <AlaBadRoy(a)yahoo.com> wrote in message
news:e1t5e51mvn3hd721l4or8l1qr2vjiff069(a)4ax.com...
> I think I have finally gotten my Visual C++ Express 2008 to
> use the 64-bit compiler in the Windows 7 SDK. I THINK! But I want to
> make sure. I've compiled some programs with the 'target platform' set
> to x64 in VC Express, but how do I tell if they really compiled into
> AMD64 code?
>

if it is a long-running process, you can use CTRL-ALT-DEL to get to task
manager, and see if there is a '*32' by the name (although, verify that
there are some other processes which do have this, to make sure this feature
is present).

alternatively, one can use the CMD shell, and then dumpbin, and see what it
says...

or via "printf("%p\n", &foo);" or similar (x64 if you see 16 hex digits,
rather than 8), not that printf generally only works in console apps though,
and doesn't do anything in GUI apps (nevermind that MSVC++ may complain when
accessing the C API, as MS for whatever reason thought this was a good
idea...).

....


> Thanks,
> Roy


From: Ant on
"Bad Roy" wrote:

> I've compiled some programs with the 'target platform' set
> to x64 in VC Express, but how do I tell if they really compiled into
> AMD64 code?

Check the machine word in the PE header. It should be set to 0x8664
for AMD64. It should _not_ be 0x0200 (Intel 64) or 0x014C (I386).

For more info ask in a Windows group.