overview :: tutorial
ctypes4j
is a Java library that enables
calling legacy C functions without coding JNI. This enables simple and rapid prototyping
when platform integration is required. Ctypes4j achieves this by providing
classes that enable both the creation and manipulation of C data types in Java,
and the calling of C level functions in dynamic link libraries/shared dlls. It
is based on (and named after) the Ctypes
module for Python, by Thomas Heller et al.
CTypes4j aims to provide a
simple to use method for platform integration without requiring a JNI programming.
It currently works on
Windows & Linux. With a little configure effort, other unices should work.
Version 0.9, 13 Nov 2005
Union type added
Version 0.8, 15 April 2005
More unit tests. Addition of pin method to pin a CType into a C level memory representation.
Version 0.7, 29 Aug, 2004
Synchronized FFI
code with ctypes-python 0.9.1
Example Windows
GUI API Application from JAWIN included
Version 0.2, 22 Mar, 2004
Callbacks working
for Win32.
Synchronized C
code with ctypes-python 0.6.3
Linux port
working for calling functions.
CStructs now
introspect their component types. Alternatively the array based constructor still works.
Reliable memory
management between C and Java.
Version 0.1.0, 03-08-2003:
Initial Release
Steve Holloway maintains
the Java/COM,
Java/Win32 Integration resources. In Steves classification system, CTypes4j
is a proxy product.
A tutorial is included in
the source distribution, but also available online.
You should also read the sample files in the source distribution.
Support may be obtained in
the mailing lists
common to ctypes java and python.
For those without the
inclination or resources to build the JNI component of ctypes4j, a prebuild DLL
and shared library are included in the respective platform distributions.
For building on WIN32, the
visual C++ compiler is currently required. The project and workspace files are
those reliable way to build. For building under linux, you will need to first
build and install the gcc-libffi-snapshot20030119.tar.gz snapshot of libffi,
downloaded from the ctypes/python
SF project. The autoconf build does not yet work for linux, you must
manually edit the Makefile for now.
The release can be
downloaded in the sourceforge
files section.
The release archives
contain all the sources, the documentation you are reading here, unit tests,
and example files in a src
subdirectory. Looking at the
examples is highly recommended in addition to reading the documentation.
These files are
distributed under the MIT license.