What is a DLL?
One explanation is
here.
How does a DLL 'work'?
This link explains it better than I could.
In my experience I've never designed DLLs. In fact I try to avoid DLLs whenever possible (i.e. I like the C programs I write to be static code).