Quote Originally Posted by SixDegrees View Post
Although I'm not a big fan of adapter classes, this has the benefit of somewhat insulating the end user from changes to the interface, since additions to the interface will not require the user to modify and recompile their plugin code.
If I understand correctly what you mean then that's not true. Addition of a virtual method to a base class requires recompilation of all subclasses (as the virtual table size and possibly offsets change).

Note that we cannot include the Q_EXPORT_PLUGIN2 anywhere but in the "working" plugin.
Why not?

It cannot be included in the adapter class, because it can only occur once in any given library. But it seems that the loader won't recognize the plugin as valid unless it inherits directly from the abstract base class.
Naah, that's shouldn't be the case.

Any thoughts on how to accomplish this, or on whether it is even possible under the Qt plugin framework?
Please prepare a minimal compilable example reproducing the problem.