When are these downloadable DLLs: VS implicit binding with explicit binding

I thought that implicit binding loads the DLL as soon as the application starts, because it is also called "dynamic binding at boot time". But I found some strange explanations below the link here ( https://msdn.microsoft.com/en-us/library/253b8k2c(VS.80).aspx ).

Implicit Links

Like the rest of the program code, the DLL code is mapped to the process space when the process is started and loaded into memory only when necessary. As a result, the PRELOAD code and LOADONCALL attributes used by .def files to control loading in previous versions of Windows no longer matter.

Explicit Link

An application that implicitly references many DLLs may start slowly because Windows loads all the DLLs when the application loads. To improve startup performance, an application can implicitly reference these libraries immediately after loading and wait for the link to other DLLs when they are needed.

And another explanation of implicit references from here ( https://msdn.microsoft.com/en-us/library/151kt790.aspx ).

Implicit Links

The C ++ visual linker now supports deferred DLL loading. This eliminates the need to use the Windows SDK functions LoadLibrary and GetProcAddress to implement deferred loading of the DLL.

Visual C++ 6.0 DLL LoadLibrary GetProcAddress; DLL, DLL, , .

Visual C++ 6.0, DLL DLL DLL.

DLL /DELAYLOAD ( ) ( ) Visual C++). DLL , LoadLibrary GetProcAddress .

, .

1. DLL DLL?

2. , , LoadLibrary() ?

+6
1

@remy-lebeau . .

DLL . :

  • dll, LoadLibrary.
  • dll , Windows .

, , dll .

Microsoft Delayed Loaded Dlls, .

, , DLL , .

:

  1. dll , . , .
  2. . DLL .
0

Source: https://habr.com/ru/post/1606637/


All Articles