我正在尝试使用ctypes库将C库包装在Python中。
我用这种方式包装结构
typedef struct {
int x;
int y;
} Point;
import ctypes
class Point(ctypes.Structure):
_fields_ = [("x": ctypes.c_int), ("y", ctypes.c_int)]
但是我有这样一条语句,无法找出如何包装它并获得类型MyFucntion
。
typedef char* (*MyFunction)(char*);
答案 0 :(得分:1)
选中[Python 3.Docs]: ctypes - A foreign function library for Python。
那是一个函数指针。您可以像这样包装它:
FuncPtr = ctypes.CFUNCTYPE(ctypes.POINTER(ctypes.c_char), ctypes.POINTER(ctypes.c_char))
但这在很大程度上取决于您将如何使用它。
请注意, typedef 与 ctypes 没有任何关系:例如, Point 的定义与没有< em> typedef (struct Point { ... };
)。