EXE
It is an executable file, which can be run independently.
EXE is an out-process component, which means that it runs in a separate process.
It cannot be reused in an application.
It has a main function.
DLL
It is Dynamic Link Library that is used as a part of EXE or other DLLs. It cannot be run independently.
It runs in the application process memory, so it is called as in-process component.
It can be reused in an application.
It does not have a main function.