Boost logo

Boost :

From: Jeremy Pack (rostovpack_at_[hidden])
Date: 2007-10-16 11:39:31


1 - The shared_library class provides for finding any function in a shared
library that is declared extern "C", and being able to call it. It can call
functions with various signatures just fine. If you need more than 6
parameters for a function, just redefine BOOST_EXTENSION_MAX_FUNCTOR_PARAMS
to the number of parameters that you need, and Boost.Preprocessor takes care
of the rest.

2 - I have nearly finished the mechanism for reflecting out arbitrary
functions (non-member functions) from a shared_library. This will make it
possible to overload function names, and require less 'extern "C"'
functions. It sounds like (1) will work for you in most cases, but if you
want to do anything more complex, (2) will be more appropriate.

3 - You can also use Boost.Reflection to create and call methods on
arbitrary classes. It works with shared_library. It does not require
inheritance.

Jeremy Pack

On 10/16/07, Felipe Magno de Almeida <felipe.m.almeida_at_[hidden]> wrote:
>
> On 10/15/07, Jeremy Pack <rostovpack_at_[hidden]> wrote:
> > Ping received.
>
> Hi Jeremy,
>
> > I'd recommend downloading the latest from the Subversion repository.
>
> I downloaded, and would like to point somethings about my use-case.
> Though boost.extension works for my use-case, it seem obligate too
> many boilerpart and the use of inheritance.
> Although I will use abstract classes as interfaces for some cases, for
> other's it would not be needed. Consequently, I wouldn't need a
> factory/factory_map too.
> I would like to be able to only call functions for shared libraries
> with vary signatures, to do not obligate a interface with only one
> function and the use of polymorphism.
> Is it possible with boost.extension? Is it documented?
>
> [snip]
>
> >
> > Jeremy
>
> Best regards,
> --
> Felipe Magno de Almeida
> _______________________________________________
> Unsubscribe & other changes: http://lists.boost.org/mailman
> /listinfo.cgi/boost
>


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