Well, the other day I was trying to find a way to make a program in Visual C++ Express 2008 that doesn't require additional files. I know it's possible because I have some third-party installations whose binaries were compiled in VC++.
Anyway, to test it I typed up one file of source code and in VC++ chose "New Project from Existing Files", selecting that one file. I'm aiming to do cross-platform work and the cross-platform, open-source projects I've used in VC++ didn't have the junk MSVC++ Express puts in the project like stdafx.h, or targetver.h by default.
So yeah, I made a new project out of that "Hello World" source code file (main() within) and in Properties->Code Generation, I changed "Multi-Threaded DLL" to "Multi-Threaded" to make it independent of the C runtime DLL (slightly larger binary, but no worry). It built successfully under Vista Ultimate SP1, although with the usual warnings about unsafe functions, and a warning about the option Wp64 being deprecated.
After it built I ran it successfully under VU-SP1, but then figured it might be detecting a runtime that came with MSVC++Exp, so I transferred it to another computer running XP Prof-SP2 and attempted to run it, but it returned an error about "invalid executable format".
I'd really appreciate some help. Again, I'm trying to make executables that can be run by 2000/XP/Vista without the CRT DLL, not just on my computer.