2 つのクラスを Python に公開しました。
BOOST_PYTHON_MODULE(client)
{
class_<Error>("Error")
.def("GetErrorCode", &Error::GetErrorCode)
.def("GetDescription", &Error::GetDescription)
.def("__nonzero__", &Error::operator bool);
class_<Client>("Client")
.def("Execute", &Client::Execute);
}
Execute メソッドの宣言は次のとおりです。
void Client::Execute(boost::python::object callable)
{
Error e;
callable(e);
}
ここに私のpythonコードがあります:
import client
def on_execute(error):
print error.GetDescription()
c = client.Client()
c.Execute(on_execute)
これはセグメンテーション違反で失敗します。Debugger は、Error オブジェクトを Python に変換できないと言っています。この問題を解決するにはどうすればよいですか?