Surendra Singhi wrote:
You can also try SWIG (cvs version) it fully supports C.
thanks, I've tried it and now it generates a mapping for e.g. TCL (which is 16 mb), but when specifying -cffi, it reports some messages (see below) and generates only a 6000 line lisp file for CFFI, with all mappings until GENERIC_MAPPING, but all other missing. Deleting this stops at the next structure. Looks like the CFFI support is missing some features.
This is the command line I've used:
swig -DGUID_DEFINED -D_TCHAR_DEFINED -D_M_IX86 -D_WIN32 \ -Iwindows -Iwindows/w32api -includeall -cffi interface.i
and this the interface.i:
%include "windows.i"
%module windows %{ #include "windows.h" %}
%include "windows.h"
I've used the cygwin header files and patched it a bit to fix some errors, you can download the package at http://www.frank-buss.de/tmp/cffi.zip I'll post this to the cffi-devel mailing list, too, perhaps someone can take a look at it and fix the cffi swig module.
The error messages:
/usr/local/share/swig/1.3.28/windows.i:6: Warning(453): Can't apply (unsigned char const &). No typemaps are defined.
/usr/local/share/swig/1.3.28/windows.i:9: Warning(453): Can't apply (signed char const &). No typemaps are defined.
/usr/local/share/swig/1.3.28/windows.i:12: Warning(453): Can't apply (unsigned short const &). No typemaps are defined.
/usr/local/share/swig/1.3.28/windows.i:15: Warning(453): Can't apply (short const &). No typemaps are defined.
/usr/local/share/swig/1.3.28/windows.i:18: Warning(453): Can't apply (unsigned int const &). No typemaps are defined.
/usr/local/share/swig/1.3.28/windows.i:21: Warning(453): Can't apply (int const &). No typemaps are defined.
/usr/local/share/swig/1.3.28/windows.i:23: Warning(453): Can't apply (unsigned long long). No typemaps are defined.
/usr/local/share/swig/1.3.28/windows.i:24: Warning(453): Can't apply (unsigned long long const &). No typemaps are defined.
/usr/local/share/swig/1.3.28/windows.i:26: Warning(453): Can't apply (long long). No typemaps are defined.
/usr/local/share/swig/1.3.28/windows.i:27: Warning(453): Can't apply (long long const &). No typemaps are defined.
Structure GENERIC_MAPPING has a slot that we can't deal with. nodeType: access, name: , type:
with this typedef for ACCESS_MASK:
typedef DWORD ACCESS_MASK, *PACCESS_MASK;