我是新的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