我正在尝试使用 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)