Как создать CFuncType в Python

Я должен передать функцию обратного вызова, которая является CFuncType (ctypes. CFUNCTYPE или ctypes. PYFUNCTYPE...).

Как я могу бросить функцию Python в CFuncType или как я могу создать функцию CFuncType в Python.

7
задан bruno 27 November 2011 в 02:46
поделиться

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)
9
ответ дан 7 December 2019 в 03:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: