0

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 に変換できないと言っています。この問題を解決するにはどうすればよいですか?

4

0 に答える 0