Я должен передать функцию обратного вызова, которая является CFuncType (ctypes. CFUNCTYPE или ctypes. PYFUNCTYPE...).
Как я могу бросить функцию Python в CFuncType или как я могу создать функцию CFuncType в Python.
Я забыл, насколько хороши ctypes:
Ниже скопировано с http://docs.python.org/library/ctypes.html
Итак, наша функция обратного вызова получает указатели на целые числа и должна возвращать целое число. Сначала мы создаем тип для функции обратного вызова:
CMPFUNC = CFUNCTYPE(c_int, POINTER(c_int), POINTER(c_int))
Для первой реализации функции обратного вызова мы просто печатаем полученные аргументы и возвращаем 0 (инкрементальная разработка; -):
def py_cmp_func(a, b):
print "py_cmp_func", a, b
return 0
Создаем вызываемый обратный вызов C:
cmp_func = CMPFUNC(py_cmp_func)