I know that I have to distribute C / C++ runtime libraries along with my project. I am just wondering why Microsoft does not do that for us? I know that there is Visual Studio 6.0 runtime included in Windows but why there is no new one?
If somebody could give me a link to some explanation article. I am trying to google that without success for a while.
There is a C runtime included with Windows, msvcrt.dll
. The MinGW gcc variation uses that library as its base runtime. Microsoft also builds programs that link to that runtime (for example, the programs that are part of the Windows installation).
While the msvcrt.dll
that is part of Windows has the same name as the runtime DLL from VC6, it's not necessarily the VC6 runtime. Each new version of Windows has added functions to the msvcrt.dll
and probably fixed some bugs.
The WDK used to include build configurations to link to msvcrt.dll
(it looks like the last version of the WDK to support this was WDK 7.1). These build configurations also included some compatibility shims, such as msvcrt_win2003.obj
, that allow a program built with such a configuration to run against the msvcrt.dll
libraries included with older versions of Windows - adding support for newer exception handling and some newer APIs, for example.
I suspect there are various reasons that MS prefers that 3rd party programs link to runtimes that are not part of the Windows system files. A couple possible reasons:
msvcrt.dll
. If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With