python ctype recursive structures

后端 未结 3 1602
一向
一向 2020-11-30 11:53

I\'ve developped a DLL for a driver in C. I wrote a test program in C++ and the DLL works fine.

Now I\'d like to interract with this DLL using Python. I\'ve successf

3条回答
  •  -上瘾入骨i
    2020-11-30 12:11

    You almost certainly want to declare next_command as a pointer. Having a structure that contains itself isn't possible (in any language).

    I think this is what you want:

    class EthercatDatagram(Structure):
        pass
    EthercatDatagram._fields_ = [
        ("header", EthercatDatagramHeader),
        ("packet_data_length", c_int),
        ("packet_data", c_char_p),
        ("work_count", c_ushort),
        ("next_command", POINTER(EthercatDatagram))]
    

提交回复
热议问题