Module-Definition (.Def) Files
Module-definition (.def) files provide the linker with information about exports, attributes, and other information about the program to be linked. A .def file is most useful when building a DLL. Because there are MSVC Linker Options that can be used instead of module-definition statements, .def files are generally not necessary. You can also use __declspec(dllexport) as a way to specify exported functions.
You can invoke a .def file during the linker phase with the /DEF (Specify Module-Definition File) linker option.
If you are building an .exe file that has no exports, using a .def file will make your output file larger and slower loading.
For an example, see Exporting from a DLL Using DEF Files.
See the following sections for more information: