terminology question - "foreign function library"

Gary Herron gherron at islandtraining.com
Sun Dec 24 16:27:16 EST 2006


mirandacascade at yahoo.com wrote:
> I am prompted to make these inquiries after seeing the following link
> to ctypes:
>
> http://docs.python.org/lib/module-ctypes.html
>
> in which ctypes is described as a foreign function library.
>
> What is the definition of "foreign function library"?
> Is the concept different from a "package"?
> Is the concept different from a "module"?
>   
Neither. If you have a library, completely unrelated to Python, but you 
would like to make calls into it from Python, there are several ways to 
proceed.

(A good example of such a library is the OpenGL library: 
C:/WINDOWS/SYSTEM32/opengl32.dll.)

You can craft an extension to Python, written in C perhaps and linked to 
the DLL in question, that provides functions which can be called from 
Python and which make the appropriate calls into the DLL. (Several 
products help with building of such an extension module, SWIG being the 
one I've used.)

A newer alternative to building such extensions is ctypes. If you can 
discern (from the documentation) the exact calling parameters footprint 
to a function in a DLL, then ctypes can directly call that function with 
your parameters. This is done directly in Python and ctypes without the 
need for building any extension module.

Gary Herron
> Thank you.
>
>   




More information about the Python-list mailing list