DYNAMIC LINK LIBRARY
The dynamic link library (dll) permits one copy of a function to be shared among some parallel executing programs. The dll is a file that contains a number of modules. The function in a dll is connected to a program which uses it when the application is run. Every time the program executes the dll is connected to the program.
The dynamic-link library (DLL) is a module which contains functions and data that can be used by the other module.
The DLL can define 2 kinds of functions: Internal and Exported.
Exported : The exported functions are intended to be called by the other modules, as well as from within the DLL where they are defined.
Internal : The Functions are normally intended to be called only from within the DLL where they are defined. Though a DLL can export data, its data is normally used only by its functions. Though, there is nothing to prevent the other module from reading or writing that address.
The DLLs provide a way to modularize applications so that the functionality can be updated and reused more easily. They also help to reduce memory overhead when some applications use the same functionality at the same time, as though each application gets its own copy of the data, from which they can share the code.
The API (Windows application programming interface) is implemented as a set of the dynamiclink libraries, therefore any process which uses the Windows API uses the dynamic linking.
- About Dynamic-Link Libraries
- Using Dynamic-Link Libraries
- Dynamic-Link Library Reference
Even though the DLLs and applications are both executable program modules, they vary in some ways. To the end-user, the most obvious difference is that the DLLs are not programs which can be directly executed. There are 2 primary differences from the system's point of view between the applications and DLLs:
An application can have multiple illustration of itself running in the system concurrently, while a DLL can have only one instance.
An application can own things like a global memory stack, file handles, and a message queue, whereas DLL cannot.