在C库中有:
typedef struct A * B;
int create_b(B* b);
并使用ctypes我需要Python等价于:
B b;
create_b(&b)
结构A在Python中实现为class A(ctypes.Structure)
。
所以,我试过了:
b = ctypes.POINTER(A)
lib.create_b(ctypes.byref(b))
但它不起作用。有许多类似的问题,但我没有尝试过帮助。
答案 0 :(得分:0)
这一行
b = ctypes.POINTER(A)
只是设置b
来引用相同的类型ctypes.POINTER(A)
,其中真正需要的是使用该类型构造的变量。该行最后没有括号:
b = ctypes.POINTER(A)()