<div dir="ltr">Hello,<div><br></div><div>Firstly, a quot from Dr.Bob's site:</div><div><br></div><div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">The basic idea of the solution is the fact that the DLL will not be loaded right away (which is the case for implicit linking), but only when needed. So potentially “delayed”, and hence the name “delay loading”. </blockquote><div><br></div><div>The main idea is the similar to the traditional dynamic loading library using LoadLibrary(), however, this directive ensures the compiler to handle it automatically for us.</div><div><br></div><div>Another quot:</div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">The delayed directive is useful in the case where the imported routines do not exist on the target operating system on which the application is run. Statically imported routines require that the operating system find and load the library when the application is started. If the routine is not found in the loaded library, or the library does not exist, the Operating System halts the execution of the application. Using the delayed directive enables you to check, at run time, whether the Operating System supports the required APIs; only then you can call the imported routines.</blockquote><div><br></div><div>And the useful sources:</div><div><br></div><div>docwiki - <a href="http://docwiki.embarcadero.com/CodeExamples/Berlin/en/DelayedLoading_(Delphi)">http://docwiki.embarcadero.com/CodeExamples/Berlin/en/DelayedLoading_(Delphi)</a><br></div><div><br></div><div>Dr.Bob - <a href="http://www.drbob42.com/examines/examinc1.htm">http://www.drbob42.com/examines/examinc1.htm</a><br></div><div><br></div><div>docwiki - <a href="http://docwiki.embarcadero.com/RADStudio/Berlin/en/Libraries_and_Packages_(Delphi)">http://docwiki.embarcadero.com/RADStudio/Berlin/en/Libraries_and_Packages_(Delphi)</a></div><div><br></div><div>My test ({$mode delphi}; FPC from trunk):</div><div><br></div><div>  procedure foo(); cdecl; external 'foo' name 'foo' delayed;<br></div><div><br></div><div>The compiler error:</div><div><br></div><div>"Fatal: Syntax error, ";" expected but "identifier DELAYED" found".</div><div><br></div><div>Thank you!</div><div><br></div>--<br><div class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div>Silvio Clécio</div></div></div>
</div></div>