ctypes POINTER (c_void_p) в функции обратного вызова

В настоящее время я сталкиваюсь с проблемой ctypes. У меня есть функция C foo такая, что:

void** foo(int); 

Я должен определить функцию обратного вызова для функции foo. Так:

 FOO_FUNC = CFUNCTYPE(POINTER(c_void_p), c_int) foo_c = lib.foo foo.argtypes = [c_int] foo.restype = POINTER(c_void_p) 

К сожалению, при вызове функции, использующей эту функцию обратного вызова в качестве аргумента, она дает ошибку: TypeError: invalid result type for callback function

Я не вижу проблемы … Может ли кто-нибудь мне помочь? благодаря

One Solution collect form web for “ctypes POINTER (c_void_p) в функции обратного вызова”

Используйте c_void_p вместо POINTER(c_void_p) . Я думаю, что это исправить. Также обратите внимание, что вы не можете использовать составные типы в качестве возвращаемых типов обратного вызова: Issue5710

  • Как получить доступ к данным из указателя в struct из Python с помощью ctypes?
  • Может ли Python вызывать функции Delphi в DLL?
  • Назначение строки python ctypes in_dll
  • Нарушение доступа с использованием типов Python
  • повторение ctypes rshift для c_ulong
  • Как я могу вызвать функцию delphi, которая принимает и возвращает указатели пользовательского типа из Python?
  • Передать список Python во встроенную функцию Rust
  • Доступ c_char_p_Array_256 в Python с использованием ctypes
  • Python 3 ТипError: ожидаемый байт или целочисленный адрес вместо экземпляра str
  • Использование функции C в Python
  • Как правильно объявить структуру ctype + Union в Python?
  • Python - лучший язык программирования в мире.