Python ctypes TypeError中的c enum typedef

时间:2013-03-27 15:44:33

标签: python c ctypes

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

0 个答案:

没有答案