diff --git a/cffi/array_printer_6/call_via_cffi2.py b/cffi/array_printer_6/call_via_cffi2.py new file mode 100644 index 000000000..d95715586 --- /dev/null +++ b/cffi/array_printer_6/call_via_cffi2.py @@ -0,0 +1,34 @@ +import pathlib + +from cffi import FFI + +ffi = FFI() + +def load_header(filename): + directory = pathlib.Path().absolute() + header = directory / filename + with open(header) as fin: + return fin.read() + + +def load_library(library_name): + return ffi.dlopen(library_name) + + +ffi.cdef(load_header("array_printer.h")) + +array = ffi.new("float [10][3]") + +array = ((1,2,3), + (4,5,6), + (7,8,9), + (0,0,0), + (0,0,0), + (1,2,3), + (4,5,6), + (7,8,9), + (0,0,0), + (0,0,0)) + +printer = load_library("libaprinter.so") +printer.print_array(array, 10)