Both files are PE files.
Both contain the exact same layout.
a) A DLL is a library and therefore can not be executed. If you try to run it you'll get an error about a missing entry point.
b) DLLs have an export section where symbols are exported.
c) These are inbund file
d) Many .dll files may exists in one application
a) An EXE is a program that can be executed. It has an entry point. b) A flag inside the PE header indicates which file type it is (irrelevant of file extension).
c) EXEs should never have an export section since they aren't libraries but nothing prevents that from happening.
d) These are outbound file.
e) Only one .exe file exists per application.