[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: dlsym() and C++

Magnus Norddahl wrote:

> Unless you've stopped developing on your library, you'll always get more
> class and functions.

Okay, but unless you want your users to wait for the final lib before they
start developing, you'll need a way to upgrade the whole thing while
at the same time keep what's currently 'out there' stable.  Obviously
adding new functionality is trivial, but changing the type of a parameter
or worse yet not it's type but it's interpretation (semantics) of an
already existing function call is a disaster to deal with from the client's
pov.  The old way to do it is load a dynamic lib and do extensive
version checking, and there wasn't much else you could do but
abort if the versions reported differ too much from what you'd like,
short of having multiple libs installed on your system (okay, I know,
COM with several interfaces per object amounts to essentially
the same multiple-libs-on-the-HD thing)

> In DirectX, I once remembered doing 5 QueryInterfaces when loading a simple
> texture - I don't want the users of ClanLib to experience that nightmare.

.. I agree it can be (very) messy, but compared to what we had
(esp. on unix etc) it's a maintenance dream, esp. for the clients
using your lib.  More complexity but much better stability and


-=<Short Controlled Bursts>=-