次のプロトタイプを持つ関数がある動的 C ライブラリ (たとえばfoo.so ) があります。
wchar_t **foo(const char *);
/*
The structure of the return value is a NULL terminated (wchar_t **),
each of which is also NULL terminated (wchar_t *) strings
*/
ctypesモジュールを使用して、PythonからこのAPIを介して関数を呼び出したい
これが私が試したスニペットです:
from ctypes import *
lib = CDLL("foo.so")
text = c_char_p("a.bcd.ef")
ret = POINTER(c_wchar_p)
ret = lib.foo(text)
print ret[0]
しかし、次のエラーが表示されます:
トレースバック (最新の呼び出しが最後):
ファイル「./src/test.py」の 8 行目
印刷[0]
TypeError: 'int' オブジェクトには属性 '_ _ getitem _ _' がありません
Pythonで物事を進めるための助けは、非常に高く評価されています.
PS : サンプルCコードで foo("a.bcd.ef") の機能をクロス チェックしました。リターン ポインターは次のようになります。