如何使python绑定到typedef指针别名

时间:2014-10-05 11:01:17

标签: python typedef ctypes

我试图在python中使用libfreefare,我决定使用ctypes。 我理解如何在Python中复制结构,但是我不知道如何重现特定的东西。

考虑这个结构:

struct mifare_tag {
    nfc_device *device;
    nfc_iso14443a_info info;
    const struct supported_tag *tag_info;
    int active;
};

以下typedef:

typedef struct mifare_tag *MifareTag;

如何在ctypes中制作MifareTag的等价物?

1 个答案:

答案 0 :(得分:1)

这是ctypes中的普通结构声明。这样的事情(不知道nfc _ * - 类型,它显然不会完整。

from ctypes import Structure, POINTER, c_int


class mifare_tag(Structure):

    _fields_ = [
        ("device", POINTER(nfc_device)),
        ("info", nfc_iso14443a_info),
        ("tag_info", POINTER(supported_tag)),
        ("active", c_int),
        ]


MifareTag = POINTER(mifare_tag)