2011-07-01 6 views
3

は、私はちょうど「SWIGとPython」チュートリアルの次のセクションをお読みください。 http://www.swig.org/Doc1.1/HTML/Python.html#n11関数が非自明な引数をとるときに、SWIGを介してPythonでC++コールバック?

私は基本的にあなたのpythonを呼び出すC関数を記述し、彼らは一例に何をすべきか理解しています。しかし、提供されている例は引数リストに2つしかないので、pythonの引数リストを作成するのは簡単です。私は次のシグネチャがあるC++コールバック持って

:*

Vector (*CALLBACK)(Simulation*, Vector, Vector, double, void*) 
ベクトルとシミュレーションは自分のクラスで

、ボイドは(例で使用されるような)PyObjectを保持clientDataためである

SWIGは、Pythonシェルで作成できるので、VectorクラスとSimulationクラスの両方をラップすることを知っています。唯一の問題は、コールバック関数のVector引数をPython引数リストの適切なPyObjectに変換する方法がわかりません。 SWIGは明らかにクラス自体をラップするときにこれを行うための方法を持っていますが、関数内で手動で行う方法はわかりません。

ご迷惑をおかけして申し訳ありません。 - 代理店

答えて

関連する問題