0

I have a 64-bit solution that I recently reconfigured from 32-bit - both in Visual Studio 2010. I have set the Active Platform in Configuration Properties to x64 and the build complete without complaint. However, when I run the executable and the dlls from the build through Dependency Walker, all dependencies are x64 except one which is for the binary it-self which is x86. So dependency walker complains but the binaries work. Are the binaries supposed to have x86 dependencies to them-selves and are they then valid x64 applications?

EDIT: I ran my executable through Corflags.exe as suggested by Hans Passant, which rendered the following output:

Version   : v4.0.30319
CLR Header: 2.5
PE        : PE32
CorFlags  : 3
ILONLY    : 1
32BIT     : 1
Signed    : 0

Does the 32BIT flag mean that it runs as a 32-bit process?

johansson.lc
  • 322
  • 2
  • 12

1 Answers1

1

Dependency Walker has not been maintained in a very long time. It doesn't know beans about managed assemblies, nor about the special trick that is used in the runtime support to turn an EXE that's marked as containing 32-bit code into a 64-bit process.

Specifically targeting x64 with the Platform target setting is entirely unnecessary, AnyCPU is the preferred choice since it will make your program work on either flavor of operating system. If you want to review settings afterwards, or change them, then use Corflags.exe

Community
  • 1
  • 1
Hans Passant
  • 922,412
  • 146
  • 1,693
  • 2,536
  • Thanks for your answer! I will update my question with the output of Corflags. – johansson.lc Jan 13 '14 at 06:42
  • Thanks, Corflags led me to the correct answer in the end. The problem was related changed output paths as a result of the configuration change but Corflags helped me solve it. – johansson.lc Jan 15 '14 at 14:32