diff -r 000000000000 -r 89d6a7a84779 Symbian3/SDK/Source/GUID-260C7ACD-0024-59DE-B1C6-0C852E44C457.dita --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Symbian3/SDK/Source/GUID-260C7ACD-0024-59DE-B1C6-0C852E44C457.dita Thu Jan 21 18:18:20 2010 +0000 @@ -0,0 +1,52 @@ + + + + + +Dynamically +Loading Link Libraries OverviewDescription of Polymorphic DLLs. +
Purpose

Dynamically load libraries during program +execution.

These interfaces are used by programs that need to load +libraries at run-time, that have a common interface, but different concrete +behaviour. Because of this relationship between interface and behaviour, such +libraries are called polymorphic DLLs.

+
Architectural relationships

Many parts of the system +use polymorphic DLLs. Communications components, such as Sockets and Messaging, +use architectures in which particular communications protocols are provided +as polymorphic DLLs, and are loaded as needed. UI application programs are +also polymorphic DLLs that are loaded when the user starts the program.

+
Description

The API has three key concepts: polymorphic +DLL, polymorphic DLL handle, and polymorphic DLL function pointer.

+
Polymorphic DLL

A program that uses a type of polymorphic +DLLs defines their interface in terms of a single abstract class whose functions +are declared as pure virtual. Each type of polymorphic DLL is given a unique +identifier (UID).

A particular concrete DLL:

    +
  • implements the interface +by defining and implementing a concrete class derived from the abstract class.

  • +
  • exports a function that +creates an object of the derived class type. All other functions in the DLL +are virtual and called through the base class interface.

  • +
+
Polymorphic DLL handle

The polymorphic DLL handle +allows a program to load and close a particular polymorphic DLL. It also allows +the caller to obtain pointers to functions exported by the DLL. The system +can check that a polymorphic DLL is of the correct type by checking the type +UID value.

The polymorphic DLL handle interface is provided by RLibrary.

A +wildcard file system search for polymorphic DLLs can be done through TFindLibrary.

+
Polymorphic DLL function pointer

An exported function +is called through a pointer to function obtained through a polymorphic DLL +handle.

The polymorphic DLL function pointer type is provided by the TLibraryFunction typedef. +The caller casts the pointer to the real type of the exported function before +using it.

+
+ +UID Manipulation +Overview + +
\ No newline at end of file