Content deleted Content added
No edit summary |
m disambig loader |
||
Line 47:
A DLL is a software library (often stored in a [[computer file|file]]) consisting of a collection of resources or routines that are available to other programs. A program that wants to use these routines is linked (see [[linker]]) with the DLL at the time it is actually started or later. Oppose this with a [[static library]], the contents of which are copied into the program when the program is compiled and linked.
A program performing the former task is called a [[Loader (computing)|loader]], while the latter task is accomplished by a [[linker]]. However, to link a program against a DLL, thus making the program request that a particular DLL be loaded when it is started, the linker also needs to look into the DLL to verify that all symbols (routines and variables) used by the program are actually provided by the DLL, thus leaving the impression that ''dynamic'' linking is performed at ''compile time'', while it actually happens at ''run time'' (in most cases, at ''program start time'').
The process of making resources available to other programs is called ''exporting''. Most common forms of exports include ''[[procedure]]s'' ([[function (programming)|functions]], routines, subroutines), ''[[variable]]s'', and some sorts of static data, e.g. icons. Exported procedures are also called ''entry points'', because invoking them is akin to "entering" the library. In order to allow access to them, the resources receive names, which are written down inside a table, also containing their offsets inside the file. These names (and sometimes, by analogy, the resources they represent) are called ''symbols''. Similarly, the table is called ''symbol table''.
|