zhen.sydow:
Hi,
I am creating a binding to an existing library (lib*.a) from Haskell.
How can i bind a function that get a pointer?
e.g: I have in the c library. int GetData( Data * d );
The steps that i need are: 1 - create the Data in Haskell 2 - create the foreign import sentence in a lib*.hs 3 - use the Data after the call
Where can i get a good tutorial about FFI? I try [1]http://www.haskell.org/hdirect/ffi.html but it's too general (need i pair of examples, i think)
Say we have: #include <string.h> void * memmove(void *dst, const void *src, size_t len); We can bind to that as: foreign import unsafe ccall "string.h memmove" c_memmove :: Ptr Word8 -> Ptr Word8 -> CSize -> IO (Ptr Word8) You can use Foreign.Ptr.* and Foreign.ForeignPtr (or even, say, Data.ByteString) to get at Ptr on the Haskell side.