Platform SDK: DLLs, Processes, and Threads |
When the system starts a program that uses load-time dynamic linking, it uses the information in the file to locate the names of the required DLL(s). The system then searches for the DLLs in the following locations, in sequence:
Windows NT/ 2000: The 32-bit Windows system directory. Use the GetSystemDirectory function to obtain the path of this directory.
If the system cannot locate a specified DLL, it terminates the process and displays a dialog box that reports the error. Otherwise, the system maps the DLL modules into the virtual address space of the process and increments the DLL reference count.
The system calls the entry-point function. The function receives a code indicating that the process is loading the DLL. If the entry-point function does not return TRUE, the system terminates the process and reports the error. For more information about the entry-point function, see Dynamic-Link Library Entry-Point Function.
Finally, the system modifies the code of the process to provide starting addresses for the referenced DLL functions.
The DLL is mapped into the virtual address space of the process during its initialization and is loaded into physical memory only when needed.