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: