рекурсивные структуры python ctype
Я разработал DLL для драйвера в C. Я написал тестовую программу на C ++, и DLL работает нормально.
Сейчас я'Я хотел бы взаимодействовать с этой DLL с помощью Python. Я'мы успешно скрыли большинство пользовательских структур C, но есть один момент, когда я должен использовать структуры C. Я'Я довольно плохо знаком с Python, поэтому я могу ошибаться.
Мой подход заключается в том, чтобы переопределить несколько структур в python с использованием ctype, а затем передать переменную в мою DLL. Однако в этом классе у меня есть собственный связанный список, который содержит рекурсивные типы, как следует
class EthercatDatagram(Structure):
_fields_ = [("header", EthercatDatagramHeader),
("packet_data_length", c_int),
("packet_data", c_char_p),
("work_count", c_ushort),
("next_command", EthercatDatagram)]
Это терпит неудачу, потому что внутри EthercatDatagram, EthercatDatagram еще не определен, поэтому анализатор возвращает ошибку.
Как мне представить этот связанный список в python, чтобы моя DLL понимала его правильно?