
Stefan Seefeld wrote:
David Abrahams wrote:
You can do some nice things with C++ interfaces:
entry_point hello(some_lib, "greet"); hello(world);
What would that call to 'hello' do and how would you protect your application against ABI incompatibilities without heavy machinery ?
I believe that most often DLL usage is on larger scale than calling individual functions -- that is loading large classes what implement certain interface. In that case, ABI incompatibilities can be handled by some external mechanism. For example, I think in KDE there's a mechanism to describe the version of plugin, and when loading a plugin you specify the desired version. Generally handling ABI incompatibilities would require that you load debug info from the DLL, load debug info from the application, and compare declarations of all interesting classes. Certainly doable, but looks like overengineering. - Volodya