我已经为 C 中的驱动程序开发了一个 DLL。我用 C++ 编写了一个测试程序,并且 DLL 工作正常。
现在我想使用 Python 与这个 DLL 交互。我已经成功隐藏了大部分用户定义的 C 结构,但有一点我必须使用 C 结构。我对python很陌生,所以我可能会出错。
我的方法是使用 ctype 在 python 中重新定义一些结构,然后将变量传递给我的 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 正确理解它?