CRT seems to be something evil the Microsoft have invented to try to break
ANSI C.
Does anyone know what it actually does?
It's Microsoft's implementation of the Standard C Library plus the
Microsoft extensions, performing the same kind of functionality as
libc.so in Linux. Under Microsoft C, one has the option of dynamically
linking to the library or statically linking. In those applications
that are dynamically linked, the msvcrt.dll is the referenced DLL.
Current versions of Microsoft Visual Studio provide the same
functionality in compiler-version-specific DLLs, making msvcrt.dll
obsolescent. Microsoft Visual Studio 2010 links with msvcr100.dll,
Microsoft Visual Studio 2013 uses msvcr120.dll, and I'm sure we can
expect more of the same in future releases so it would appear we are
back in DLL hell.
The C++ runtime is provided in msvcpXXX.dll, etc, where XXX is the
version number of the studio that built the project per the above
description.
As far as Jacob's assertion that msvcrt.dll "doesn't exist" this is in
direct conflict with observed facts on the systems I have at hand
here. The DLL does exist on 3 systems in my lab and on the two 64-bit
systems I checked, it exists as both 64 and 32 bit libraries.
Microsoft has this to say about it:
"The msvcrt.dll is now a 'known DLL,' meaning that it is a system
component owned and built by Windows. It is intended for future use
only by system-level components."
I think Jacob means "msvcrt.dll can be ignored for new development"
but he certainly says it very badly.