[GUI] Binding c++ gui libraries to haskell.
David Sankel
camio@yahoo.com
Thu, 27 Feb 2003 17:19:21 -0800 (PST)
--- Nick Name <nick.name@inwind.it> wrote:
> However, I am not sure I
> got the point: to wrap a C++ library, does one need
> to make a "CCALL"
> wrapper first? I guess that could be automatically
> generated. Have you
> already got ideas on how to deal with class methods
> and inheritance? If
> it's a silly question, I apologize.
Not a silly question at all. The ffi specification
(http://www.cse.unsw.edu.au/~chak/haskell/ffi/ffi.pdf)
does allow for a more direct connection to C++ using
cplusplus instead of ccall. However, this is not
standardized or implemented yet.
So the best we can do right now is use ccall
wrappers for C++ code. For classes and their
respective member functions, we may use ForeignPtr and
wrap the c++ call like this,
Foo_memFun_bar( Foo * someFoo, int i )
{
someFoo->bar( i );
}
and it would clearly work for inheritance.
It'd be nice to allow the pointer conventions used in
boost (www.boost.org) which would give us memory
management for the c++ side of things via shared_ptr.
I'm not sure how much can be done on this side of
things. Perhaps we can use boost::bind somehow as
well.
Anyway, good luck. Please post, if you can, anything
you get working since I haven't seen anyone using this
stuff yet.
David J. Sankel