Source and Binary DomainsA DynObj plugin library exists in two forms:
Plugin source domainSince 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 domainA 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.