我是新的C++, 我得到的访问冲突异常每当我试图构造一个对象 的构造函数如下所示访问冲突OpenCV的C++ DLL
Image::Image(IplImage* pIplImage, bool bDestroy)
: m_bOwned(bDestroy)
{
memcpy(static_cast< IplImage* >(this), pIplImage, sizeof(IplImage));
if (bDestroy)
cvReleaseImageHeader(&pIplImage);
}
和析构函数是
Image::~Image()
{
if (m_bOwned)
cvFree(reinterpret_cast< void** >(&imageDataOrigin));
}
编辑1:类定义
class VISION_EXPORT Image
: public IplImage
, private boost::noncopyable
{
public:
explicit Image(IplImage* pIplImage, bool bDestroy = true);
~Image();
private:
bool m_bOwned;
};
这是工作之前,但现在当我将它导出为DLL ..它不再工作。 你能帮我吗?
为什么当库提供了一个C++接口时,您需要自己的OpenCV映像结构的C++包装? –
它是中间件的一部分,我应该照原样使用它。 –
你从哪里得到访问违规? IT可能只是因为你写过一个数组的末尾并通过堆写入,这会导致后续分配抛出访问冲突。 – Goz