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中的那張圖片,我該怎麼做到這一點?