Здравствуйте, Бабошин Андрей, Вы писали:
БА>Добрый день.
БА>Из C++ кода вызываю питиновский скрипт:
БА>БА>object main_module((handle<>(borrowed(PyImport_AddModule("__main__")))));
БА>object main_namespace = main_module.attr("__dict__");
БА>try {
БА>object result = exec(script.c_str (), main_namespace, main_namespace);
БА>TestResult res = extract<TestResult> (result);
БА>std::cout << res.logStr << std::endl;
БА>} catch ( error_already_set const & ) {
БА>std::cout << "error!" << std::endl;
БА>assert(PyErr_Occurred());
БА>PyErr_Print();
БА>}
БА>
БА>python-овский скрипт:
БА>БА>import testCore
БА>test = testCore.TestCore()
БА>test.run()
БА>
БА>testCore — C++-класс, который забинден в питон.
БА>Его метод run возвращает структуру TestResult, которая также забиндина в питон.
БА>Но вызов данного C++-кода приводит к ошибке:
БА>БА>TypeError: No registered converter was able to produce a C++ rvalue of type TestResult from this Python object of type NoneType
БА>
БА>Как мне в C++-коде получить результат выполнения данного скрипта?
БА>Спасибо.
Покожи бинд этого класса TestResult возможно нету конструктора )