A .dll is a "Dynamic Link Library", which houses information an executable (.exe) can use and needs for it to run. Our hacks are in the form as a .dll as it is the compiled version of C++ code. C++ is a programming language, and is the most widely used programming language in the hacking scene. An Injector is an executable (.exe) that injects the hack code into the game. Because the code can not be used in its simple form (what programmers actually type), it is first compiled into a .dll file, and then that file is what is injected into the game.
So basically you have your game.exe, and your hack.exe, as well as your injector.exe.
Your injector.exe grabs the hack.dll and shoves it into the game.exe, and that is how a hack works.