http://en.wikipedia.org/wiki/Runtime_librarySymSpaceT wrote:For some of us non-coders but otherwise tech-savvy, could somebody explain why one would use this pack? What is a "runtime"?
Basically, every program(*) compiled with Microsoft's C, C++, or Visual Basic compiler is going to need a Microsoft runtime library in order to run. If it was compiled with Borland's compiler, it would need a Borland runtime library. Etc.
Now, there are several ways in which a program can get the runtime library that it needs:
1) It can statically link the runtime (i.e., incorporate the stuff directly into the EXE so that it doesn't need the DLL at all), but this makes the EXE (and installer) bigger.
2) It can bundle the runtime DLL with the install package so that the runtime gets installed when the EXE gets installed; this makes the installer bigger and more complicated.
3) It can assume (or hope) that the runtime is already on the system.
In the case of (3), the runtime might be one of the runtimes bundled with Windows (see the first post for what runtime libs are bundled with XP), or the program might instruct the user to download and install the runtime before installing the program (this is something usually seen with homegrown software). Or, since so many programs use the VC8 and VC9 runtimes, the programmer might assume that the user had probably already installed those runtimes when installing another program.
Depending on which version of Microsoft's compiler is used, the program that takes the (3) route might require a runtime that is already included in Windows (if using VC6 or earlier or if using a DDK compiler which links to the system CRT instead of a VC CRT) or, more commonly, it might require a runtime that is not included, e.g., people who compile with Visual Studio 2002/3/5/8 (or an early VB version).
This pack adds the runtimes for VS2K2/3/5/8 (and the early VB versions) so that programs that go with method 3 are covered. This runtime pack is different than most other runtime packs because it is installed during text setup, which means that if you happen to run a method 3 program at T-13, it will be covered.
Oh, and one more thing: these are the latest versions available, and due to SxS version override "policies", installing this pack also means that any program that needs one of these runtime DLLs (even if they take the bundle-their-own method 2 approach (**)) will end up using these latest runtimes with all the latest bug fixes.
(*) Actually, I lied. Not all C/C++ programs require a runtime library, and it is possible to build programs that don't require the C runtimes at all (e.g., my FontReg utility), but these programs are relatively rare (if you don't count drivers), so for the purposes of illustration, I said "every program".
(**) Well, there are exceptions, but there's no need to bore into the technical minutiae.