Re: Binding c++ gui libraries to haskell.
David Sankel <[email protected]>
| Newsgroups | gmane.comp.lang.haskell.gui |
|---|---|
| Message-ID | <[email protected]> |
--- Nick Name <[email protected]> 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