我正在创建一个小型GUI系统,希望使用Python、Cairo和Pystacia库进行渲染。为了实现C++/Python交互,我正在使用Boost Python,但是我在指针方面遇到了一些问题。
我看到过一些类似的问题,但不太明白如何解决。
如果我有一个只有图像数据指针的结构/类:
我看到过一些类似的问题,但不太明白如何解决。
如果我有一个只有图像数据指针的结构/类:
struct ImageData{
unsigned char* data;
void setData(unsigned char* data) { this->data = data; } // lets assume there is more code here that manages memory
unsigned char* getData() { return data; }
}
如何使此代码(C++)在Python中可用:
ImageData myimage;
myimage.data = some_image_data;
global["myimage"] = python::ptr(&myimage);
在Python中:
import mymodule
from mymodule import ImageData
myimagedata = myimage.GetData()
#manipulate with image data and those manipulations can be read from C++ data pointer that is passed
我的代码可以调用传递给类的指针的基本方法。这可能是基本用例,但我还没有能够使其正常工作。我尝试了shared_ptr,但失败了。应该使用shared_ptr、代理类或其他方式解决吗?