s2345601 发表于 2020-1-17 10:58

python中ctypes调用结构体指针的问题

python小白一枚,C是完全不懂啊。。。。。
最近碰到了如下问题,需要用python调用dll,下面是dll中定义的方法跟结构体
typedef struct filenode{
        char *filename
        struct filenode *next
}

int checkfile(const char *files, struct filenode **notexistfiles)
根据官方文档,目前可以知道对应python的结构提的定义如下:
class filenode(Structure):
        pass
filenode._fields_ = [("filename", c_char_p), ("next", POINTER(filenode))]

请问该如何调用传参,并取到结构体重的数据呢,谢谢!!

s2345601 发表于 2020-1-17 17:53

在各种资料及尝试后,该问题已解决了
解决方法如下:
class filenode(Structure):
        pass
filenode._fields_ = [("filename", c_char_p), ("next", POINTER(filenode))]


file_node = POINTER(filenode)()
checkfile("aaa", byref(file_node)
页: [1]
查看完整版本: python中ctypes调用结构体指针的问题