When you have read this however, rest assured that you will be able to benefit from such other hands-on books immensely more. Other books on the marketplace take a milder approach while attempting to explain basically the same subject. They generally fall short of deep technical details and advanced facets, nonetheless they can offer a somewhat more progressive path to the complexity of the argument. One such book that I would suggest is Inside COM , written by Dale Rogerson and published by Microsoft Press. Once one overcomes the issues related to linking, one now has to deal with the far more problematic area of incompatibilities related to the generated code.
Exceptions are a classic example of such a language feature.
This is because the DWP does not mandate what a language feature must look like at runtime, so it is perfectly legal for each compiler vendor to implement a language feature in a unique and innovative manner. We then used the notion of interfaces and implementations to encapsulate the implementation details of the data type behind a binary firewall, allowing the object's layout to evolve without requiring client recompilation. When using the abstract base class approach to define interfaces, this firewall took the form of a vptr and vtbl. We then examined techniques for dynamically selecting different polymorphic implementations of a given interface at runtime using LoadLibrary and GetProcAddress. Finally, we used an RTTI-like construct for dynamically interrogating an object to discover whether it in fact implements a desired interface.