1
をにuint8:SWIG Cライブラリとctypesのは、私は例えば、私のCライブラリを生成するために、SWIGを使用している無効な型
mylib.pyをしてpythonで
int func(uint8_t* a)
{
return *a;
}
を_mylib.pyd:
import mylib
import ctypes
a = (ctypes.c_uint8 * 8)()
mylib.func(a)
しかし、Pythonの実行は私にエラーを与える:TypeError: in method 'func', argument 1 of type 'uint8 *'
私はタイプマップを検索し、私は私を追加します私の.iモジュールファイルには、次のようになります。
%module mylib
%include "typemaps.i"
extern int func(uint8_t* INPUT);
pythonエラーです。
私はctypes.c_uint8を印刷してmylib uint8を印刷しました。私はmylib uint8がswigオブジェクトであることを発見しました。この仕事をするには?
を使用して
python setup.py build_ext --inplace
、テストを使用してビルドはSWIG''と互換性がありません。彼らは異なるタイプです。あなたの 'SWIG'インターフェースファイルに'%include "carrays.i"と%array_class(unsigner char、uint8ArrayClass) 'を組み込み、生成された' uint8ArrayClass(4) 'を使って、長さ4の配列。 –こんにちは、ありがとう、私にシンプルなテキストを表示できますか? –
私が提供したキーワード –