Is there any way to build a VC++ project so that the dll/exe created by it will work as a 32 bit application on a 32 bit Windows OS and as a 64 bit application on a 64 bit Windows OS (not in WOW64).
I know that is possible for C# applications using the /ANYCPU option.
The CLR has special loader support for the /ANYCPU option.
If you really want to do this for native, the best way to do it is to:
This is how the Sysinternals tools work (download Process Explorer onto a 64-bit machine and run it: you’ll see that it writes procexp64.exe to disk and then runs it from there). It’s a hack, but it works.