A dynamic link library (DLL) is a shared program module with ordered code, methods, functions, enums and structures that may be dynamically called by an executing program during run time. A DLL usually has a file extension ending in .dll. Other file extensions are .drv and .ocx.
DLLs were developed by Microsoft and work only with the Windows operating system (OS).
DLL-defined function types are as follows:
- Exported: May be called by another module, as well as from their defined DLLs
- Internal: May only be called from their defined DLLs
DLLs help conserve system memory. They are not loaded into RAM until they are needed, and thus help reduce memory overhead. Applications that require DLL data receive it as required, which also helps manage memory.
Links to required DLL files are usually created during programming. If the links are static, DLL files are available and used as the program runs. If the links are dynamic, DLL files are used only as needed.
Another advantage of DLL files is that they may be used by multiple programs simultaneously. DLL files are usually not opened directly because they are automatically loaded with the program. DLL files also use system resources efficiently and reduce swapping.
When DLL functions change, it is not necessary to recompile or relink the application using the DLL as long as the calling conventions, function arguments and return values remain the same.