An API (Application Programming Interface) is a collection of interface routines to a particular library, collection of libraries or operating system. This allows application programmers to use the functions in the libraries without needing to know the internal structure of the system they are accessing.
A DLL (Dynamic Link Library) is an object module comprising a set of related routines that may be part of a larger API. DLLs are loaded into memory on demand where their code may be shared by many application programs.
There is plenty of information on MSDN