The figure below illustrates a simple case in which you create an application that uses a single dynamic-link library (.DLL) file.
┌──────────┐ ┌─────────┐ ┌─────────┐ ┌──────────┐ │ .OBJ and │ │.DEF file│ │.DEF file│ │ .OBJ and │ │.LIB files│ │(LIBRARY)│ │(imports)│ │.LIB files│ │ │ │(exports)│ │ │ │ │ └────┬─────┘ └────┬────┘ └────┬────┘ └─────┬────┘ │ │ │ │ └──────┬──────┘ └──────┬──────┘ │ │ (1) LINK386 (2) LINK386 │ │ ┌────┴────┐ ┌──────┴──────┐ │.DLL file│ │ .EXE file │ │(library)│ │(application)│ └─────────┘ └─────────────┘
As depicted above, linking occurs in two steps: