FFI Again (last time, I promise!)

Kevin Fisher kgf at golden.net
Mon Oct 16 23:36:36 UTC 2000


Sorry to bring this up again, but now that I've gotten FFI under UNIX working 
I've got a question about the calling syntax.

When creating a method to call an external function, you use something like 
this in the method definition:

<cdecl:  long 'system' (char*) module:'libc.so.6'>

So, the questions:

1)  Why does UNIX use <cdecl ...> while Mac and Windows use <apicall ...>?
2)  In the above example, I have to use the module 'libc.so.6' specifically, 
or else the function call won't work.  However, in the X11 examples the module 
is always set to 'X11' (not libX11.so).    Is there any way I can call from 
the standard C library without specifically having to reference the 
version-specific libc.so.6?  Using module: 'c' doesn't work...

Thanks for any advice!






More information about the Squeak-dev mailing list