DynObj - Dynamic Binary Runtime Plugin Objects Hosted by:
SourceForge.net Logo

Source and Binary Domains

A DynObj plugin library exists in two forms:
  • Source code form
  • Compiled, binary form (*.so, *.dll)
We will look at where a plugin in source and binary form are functional below.

Plugin source domain

Since the DynObj library is cross-platform, the source version of a plugin library has this area of validity:

All platforms where the DynObj core library has an API wrapper for (platform specific) shared library loading.

The above holds provided that the plugin itself does not introduce platform dependence.

At this level we have language dependence (what language is the plugin written in?) but no OS dependence.

Currently the DynObj support library is available for C/C++, but other compiled languages with support for objects with VTable style virtual functions are possible.

Plugin binary domain

A binary plugin can be used across one run-time environment, limited by what the dynamic linker can normally 'link together' (regardless of what languages a program or a plugin were compiled from).

Some run-time environments are win32, linux32, win64.

For a plugin in binary form, we don't have language dependence but we do have platform dependence (the opposite of what we have at source code level).

Effectively, the dependence between host and plugin on the binary level is that both must be able to handle objects with virtual function tables.