Boost logo

Boost :

From: Vladimir Prus (ghost_at_[hidden])
Date: 2005-04-27 08:55:13


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


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk