What is Delay loading DLL?

This is a popular terms cited under windows programming. What is really a delayed loading of DLL? You can get a rought idea from the following article from codeproject.com

http://www.codeproject.com/dll/Delay_Loading_Dll.asp

Normally, if you executable reference a API function in another DLL, windows loader will attempt to load the DLL into memory, and report error if the DLL is missing or out of date. If your application has a lot of DLL dependancy, then the loading process will be long, even if you just made one API call to each DLL.

Delay Loading of DLL simply means the DLL is not loaded until a call to the API inside has been made. By adding a few linker directive in the exe, the windows loader will be able to do so.

Disadvantage: if the underlying dll is missing, it will only be discovered when the call the API in dll has been made, and your program maybe terminated abruptly at run time. SO a Structure Exception Handler (SEH) is suggested.