Hi Torsten, great, glad to hear it's potentially useful!

Are you using Macports? That's what I normally use on the Mac for
installing things like libffi. Otherwise if installing from source you
might be able to set the LD_LIBRARY_PATH environment variable in the
shell to /usr/local/lib for it to pick up the shared libraries without
having to link them to /usr/local/include.

>  ozffi.cpp:316: error: invalid conversion from 'void (*)()' to 'void
>  (*)(...)'
>  ozffi.cpp:316: error:   initializing argument 2 of 'void ffi_call
>  (ffi_cif*, void (*)(...), void*, void**)'

This is from my cast to the ffilib function pointer to type. The code
looks something like:

typedef void (*fn_t)();
fn_t fn = (fn_t)OZ_getForeignPointer(Pointer);
ffi_call(&cif, fn, &rc, values);

Change the definition of 'fn_t' to match what the 2nd argument of
ffi_call expects from the function prototype in the ffi.h header file.
It might be different on the Mac OS X version. Maybe something like
this works:

replace:
  typedef void (*fn_t)();
with
  typedef void (*fn_t)(...);

I have a Macbook that I can try this in a day or so if you encounter
more problems.

Cheers,
Chris.
-- 
http://www.bluishcoder.co.nz
_________________________________________________________________________________
mozart-users mailing list                               
[email protected]
http://www.mozart-oz.org/mailman/listinfo/mozart-users

Reply via email to