How Many type of linking..?

There are two main categories of linking - Static Linking and Dynamic Linking.

Static Linking - In this type of linking, linker links the actual code of the library direct into the code section of the executable.

Example: Linking C and Graphics library in Turbo C++ for MS DOS.
Linking an application with a archive contains .obj files.

Dynamic Linking - Dynamic linking does not link the actual code of the external functions. Instead it prepares a list of imported functions in .idata section and a stub code which actually jumps to the external function by address.

Again Dynamic Linking can be divided into two category
Implicit Dynamic Linking and Explicit Dynamic Linking.

Implicit Dynamic Linking - Links the code with the import library using .idata section mechanism. At the time of application launching all the dependent DLLs should be loaded to start execution. Also when application ends execution all the dependent DLLs are getting unloaded.

Explicit Dynamic Linking - This linking does not require any .IMPORT section to list the function entries. It is done at runtime. User calls the Win32 API LoadLibrary() to load a particular DLL from a specific path on the demand basis at runtime. Thus there is no requirement for the DLL to be loaded at the startup time. Also DLL can be unloaded after the use with FreeLibrary() call.
 
Back
Top