我正在尝试使用ctypes在Python中调用外部C库。我进行了一个很好的进展,直到我得到一个特定的函数调用,它引用了某个枚举,它在头文件中定义为:
typedef enum { a = 0,
b
} A;
我尝试了各种调用函数的方法,但我一直在这样做:
a = libc.function2(out, 0, outputCallback, c_int(1), 1)
ctypes.ArgumentError: argument 3: <type 'exceptions.TypeError'>: Don't know how to convert parameter 3
这是我的代码,函数名称更改为泛型,问题出在第二个函数调用中:
cdll.LoadLibrary("library.so")
libc = CDLL("library.so")
def outputCallback():
print "Hello"
// This function executes properly
out = libc.function1(0, 0, 0, 0, 0)
// Function that gives error #
a = libc.function2(out, 0, outputCallback, c_int(1), 1)