2011-07-01 44 views
3

我剛看完「SWIG和Python」教程的以下部分: http://www.swig.org/Doc1.1/HTML/Python.html#n11當函數使用非平凡的參數時,通過SWIG使用python進行C++回調?

我知道他們在做例子的東西,基本上你編寫調用Python中的C函數。但是,所提供的示例在參數列表中只佔用了一倍,使得爲python構建參數列表變得相當簡單。

我有一個C++回調具有以下特徵:

Vector (*CALLBACK)(Simulation*, Vector, Vector, double, void*) 

其中矢量和模擬都是我自己的類,並且void *的是clientData持有的PyObject(如本例中使用)

我知道SWIG包裝了Vector和Simulation類,因爲我可以在python shell中創建它們。唯一的問題是,我不知道如何將回調函數中的Vector參數轉換爲適用於python參數列表的PyObject。當SWIG包裝類時,SWIG顯然有辦法做到這一點,但我不知道如何在函數中手動完成它。

任何幫助非常感謝! -Chase

回答

相關問題