Supporting polymorphic interface DLLs with static interface DLLs

Explains how to support polymorphic interface DLLs with static interface DLLs.

In the previous sections showing how to use polymorphic interface DLLs, the class declaration contains only pure virtual functions. In real applications, the implementation of some of these functions could be the same in all implementation DLLs, leading to duplication of code.

An abstract base class, intended for derivation in a polymorphic interface DLL, can include functions declared as IMPORT_C. Such functions must be implemented in a static interface DLL.

When a polymorphic interface DLL is loaded by RLibrary::Load(), any static interface DLLs required by the polymorphic interface DLL are also loaded.

If this technique is used, one function that can be usefully implemented in the statically loaded DLL is an empty destructor.