Dynamic Link Libraries are used in windows, which is capable of storing modules. A piece of code must be in memory for execution. But as far as DLL is concerned, It need not be fetched to memory at initial phase. It can be brought into memory whenever it is required..
To get a clear view about this, Imagine your RAM(512 MB for example) with a program(size of 300 MB) loaded into it. Now just imagine the same program is split into 100 pieces (each one weighs around 3 MB). This piece is called DLL. Instead of loading the complete 300 MB code as in the first case, now we are required only to load the corresponding DLL which contains the code of demand.
Advantage of having DLLs
* need not to load a big code into memory.
* sharing of code is possible between many process.
* effective memory utilization.