2

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

0 回答 0