Dynamic linking is a mechanism that links applications to libraries at run time. The libraries remain in their own files and are not copied into the executable files of the applications. DLLs link to an application when the application is run, rather than when it is created. DLLs may contain links to other DLLs.
Many times, DLLs are placed in files with different extensions such as .exe, .drv or .dll.
Given below are a few advantages of having DLL files.
DLL files don't get loaded into the RAM together with the main program; they don't occupy space unless required. When a DLL file is needed, it is loaded and run. For example, as long as a user of Microsoft Word is editing a document, the printer DLL file is not required in RAM. If the user decides to print the document, then the Word application causes the printer DLL file to be loaded and run.
A DLL helps promote developing modular programs. It helps you develop large programs that require multiple language versions or a program that requires modular architecture. An example of a modular program is an accounting program having many modules that can be dynamically loaded at run-time.
When a function within a DLL needs an update or a fix, the deployment and installation of the DLL does not require the program to be relinked with the DLL. Additionally, if multiple programs use the same DLL, then all of them get benefited from the update or the fix. This issue may occur more frequently when you use a third-party DLL that is regularly updated or fixed.
Applications and DLLs can link to other DLLs automatically, if the DLL linkage is specified in the IMPORTS section of the module definition file as a part of the compile. Else, you can explicitly load them using the Windows LoadLibrary function.
Mentioned below are some important dll files which user should know for programming −
COMDLG32.DLL − Controls the dialog boxes.
GDI32.DLL − Contains numerous functions for drawing graphics, displaying text, and managing fonts.
KERNEL32.DLL − Contains hundreds of functions for the management of memory and various processes.
USER32.DLL − Contains numerous user interface functions. Involved in the creation of program windows and their interactions with each other.