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

関数名をジェネリックに変更したコードを次に示します。問題は 2 番目の関数呼び出しにあります。

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