Well... dll's have changed - for .NET a .dll is called an Assembly File. The dll's that get generated essentially just talk to the windows API. Then the api talks to the Runtimes (in a VB or VS world) and the Runtime files communicate to the Machine-Code which talks to the hardware.
When not in the .NET world programmers used to run into "dll hell" which was truly hell - because many different versions of dll's would exist on a box and be registered and not know which one to communicate to. DLL files are dynamic link libraries - which are generally shortcuts to windows api. When you publish, release or Debug in .NET you will see an exe gets created along with a bunch of dll's (assemblies). These dll's can be thrown into a .NET website, WEbService, App, Mobile app, etc... they are all the same and expose the hooks to call their methods, construct their objects, etc...
Dim Burner as new GSWburner.burner
Burner.burn("C:\test.avi")
This constructs GSW.Burner object and calls its method to burn

hope this helps... and we can explain further if you like...