The next question is, suppose there is an abstract application that wants to add some API for plugins. Plug-ins are likely to represent the DLL's that are dynamically loaded core code.
In Java you can make an interface IPlugin, and the plugin to extend it: public class MySuperPlugin implements IPlugin, and then quietly load thousands of classes by name. Is it possible to do something similar in C++? I know that you can safely load normal functions (not class members) from a DLL. While I think of only these crutches: make many functions of "adapters," each of which calls the appropriate member class. But it's terrible.
How to solve? In fact, probably possible.