A Dynamic Link Library is a collection of executable code that can be used by multiple programs at the same time. DLLs are used to make programs modular, making the program easier to run and upgrade.
It's easier to understand how DLLs work by contrasting them with Static Libraries. With a Static Library the library and the executable, or .exe, are one file. Using a DLL splits the program into the library and the executable. The executable code simply directs the program to the proper "shelf" in the DLL file whenever it needs to pull code from the library.
DLLs serve two main purposes. First, they cut down on space; a program that has several executable files can have one DLL instead of duplicating the libraries for each executable. For example, an office suite might have the fonts in a DLL that is shared between the word processing and slide-show portions. Second, DLLs make modifying a program easier. As long as the code in the DLL stays in the "shelf," nothing in the executable needs to be changed. The programmer only has to change the DLL and the changes take effect in all of the executable programs that use that file.