Y'all have no idea what you're talking about. Let me demonstrate; you can follow along if you like:
I just created a new console application in Visual Studio 2013. In release mode, it is 7Kb, and dynamically linked. It does not run on any of the Windows 7 PCs around here, because they do not have the 2013 Redistributable installed.
Now, in the project properties > Configuration Properties > C/C++ > Code Generation, I switch the Runtime Library option from /MD (DLL) to /MT (statically linked), and rebuild. The executable jumps to 68Kb and now runs on everything with no dependencies.
This is the exact same behavior as GCC, except if you do decide to go with the DLL, it's more likely to be installed on your target and easier to get if it's not. My Windows 8.1 install came with 2005, 2010, and 2012 by default, and the 2013 installer is only 7Mb and required for a lot of other things anyway.
Further, you can get Visual Studio to use older libraries if you have the SDK installed by going to Configuration Properties > General and changing the Platform Toolset option.
Finally, none of this has anything to do with .NET- it's all the C and C++ runtime libraries. Robert's correct that it's not backwards compatible, but with all the old versions factory installed with a total combined size around 13Mb, who cares?
|