4
首先,我不是一个Python程序员,所以请原谅我愚蠢的错误。boost:python传递指针指针作为参数
在C++中,我从MyClass中创建了一个公共方法,该方法动态地创建图像并返回其大小。
int MyClass::getImg(uchar *uimg[])
{
int size = variable_size;
*_uimg = new uchar[size];
memcpy(*_uimg, imageOrigin->data(), size);
uimg = _uimg;
return size;
}
和升压:蟒蛇:
BOOST_PYTHON_MODULE(mymodule)
{
class_<MyClass>("MyClass")
.def("getImg", &MyClass::getImg)
;
}
,当我尝试在Python中使用它:
def getImg():
img = c_char_p()
size = mymodule.MyClass.getImg(byref(img))
我得到这个错误:
Boost.Python.ArgumentError: Python argument types in
MyClass.getImg(MyClass, CArgObject, CArgObject)
did not match C++ signature:
getImg(class MyClass {lvalue}, unsigned char * *)
在python中我也试过声明
img = POINTER(c_ubyte)()
但这也没有帮助。
我把它搜索了几个小时,我没有想出任何好的解决方案。
我只需要访问python中的那张图片,我该怎么做到这一点?