【发布时间】:2018-03-21 00:05:57
【问题描述】:
我正在用 C++ 编写以下测试用例:
using namespace boost::algorithm;
static PyObject* strtest(PyObject* self, PyObject* args)
{
std::string s = "Boost C++ Libraries";
to_upper(s);
PyObject * python_val = Py_BuildValue("s", s);
return python_val;
}
代码会编译和导入,但会产生看起来像是对内存位置的引用。
>>> math_demo.strtest()
' X\x0e'
我期待 'BOOST C++ LIBRARIES' 作为返回值
我错过了什么?
谢谢
【问题讨论】:
-
你试过
PyObject * python_val = Py_BuildValue("s", s.c_str());吗? -
优秀。这就是解决方案。如果您想发布作为答案,我会给予信任。