Я разработал 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 правильно его понимала?