Как создать CFuncType в Python
Мне нужно передать функцию обратного вызова, которая является CFuncType (ctypes.CFUNCTYPE или ctypes.PYFUNCTYPE...).
Как я могу привести функцию python к CFuncType или как я могу создать функцию CFuncType в python.
1 ответов
Я забыл, как здорово 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)