DLL's
A Dynamic Link Library (DLL), is basically afile containing functions to be used by applications. This allows you to reuse the same code in multiple applications such as code to display a message box (best example I could come up with).
Also it allows different implementations of the same interface.
As an example take 3d drivers,
all get called using the same function calls but their implementation of the functions is completely different depending on the card hardware.
Functions are exported from a DLL (made to be) and imported into an application. This basically means that the application knows that it does not have the code for the function and will load the dll at runtime to get access to the function.
Hope this is clear, I am not an expert at these things but this is the basic gist.