ctypes, функция, возвращающая указатель на структуру

My C code is returning a pointer to the structure, this is how I have defined it in python

class CONTEXT(ctypes.Structure):
  _fields_ = [
                ("sockfd", ctypes.c_int), 
                ("eidSeq", ctypes.c_longlong)
             ]
# API
# connect
PY_connect=NativeDll.gf_connect
# connect input and output parameter declaration
PY_connect.argtype = [ 
                          ctypes.c_char_p, 
                          ctypes.c_char_p, 
                          ctypes.POINTER(ctypes.c_int)
                        ]
PY_connect.restype = [
                          ctypes.POINTER(CONTEXT)
                        ]

But I am getting following error for the restype

TypeError: restype должен быть типом, вызываемым или отсутствующим

2
nl ja de
Чисто угадывая здесь, но я бы предположил, что restype должен быть просто типом, а не списком типов, которые у вас есть.
добавлено автор DaveP, источник

1 ответы

Поскольку DaveP уже правильно догадался в комментариях, restype не должен быть списком типов.

PY_connect.restype = ctypes.POINTER(CONTEXT)

Также обратите внимание, что типы аргументов задаются атрибутом argtypes , а не argtype .

3
добавлено
@KonstantinosMonachopoulos Возможно, вы набрали указатель вместо POINTER
добавлено автор Janne Karila, источник
Я получаю тип должен иметь информацию о хранилище
добавлено автор Konstantinos Monachopoulos, источник
Python
Python
7 654 участник(ов)

Уютный чат для профессионалов, занимающихся поиском питоньих мудростей. Как не получить бан: https://t.me/ru_python/577926

Python beginners
Python beginners
4 449 участник(ов)

Вопросы про Python для чайников. Cпам и троллинг неприемлем. Не злоупотребляйте стикерами. Частозадаваемые вопросы: https://github.com/ru-python-beginners/faq/blob/master/README.md Статистика тут: https://grstats.me/chat/x4qym2k5uvfkr3al6at7

pro.python
pro.python
1 090 участник(ов)

Сообщество разработчиков под Python Создатель: @rodgelius

Rude Python
Rude Python
971 участник(ов)

Python без „девочек”, здесь матерятся и унижают Django. Not gay friendly. Правила: t.me/rudepython/114107 @rudepython | t.me/rudepython

rupython
rupython
509 участник(ов)

Группа создана с целью оперативного получения ответов на возникающие вопросы по разработке на яп python, смежные темы, а также человеческого общения. Приветствую!

Python-programming
Python-programming
266 участник(ов)

Чат группы вконтакте https://vk.com/python_community