我有一些代码需要放在公用库dll中。这个代码,类CalibrationFileData
,作为当前项目的一部分构建时,工作得很好。但是,如果公用库中内置了CalibrationFileData
,则程序崩溃,提到堆损坏。使用DLL代码时堆损坏
我已经确保所有的分配和释放都在类中,并带有适当的访问器等等。但是,问题不会消失。为防万一,它有时会传递对的向量,绝对不是普通的旧数据,但矢量操作只能通过访问器进行,所以不应该在模块间进行任何分配。
我错过了什么?
编辑:的载体是这些:
std::vector<std::pair<CvPoint2D32f, CvPoint3D32f>>* extrinsicCorrespondences;
std::vector<int>* pointsPerImage;
我不应该需要担心深层副本,因为他们是不分配的堆,对不对?顺便说一句,我试图使用指针作为向量,如上所述,以回避这个问题,但它并没有改变。
我担心的载体本身。因为它是一个模板,DLL和EXE可以有不同的向量代码实例。这可能是Trajanfoe暗示的 - 不确定。此外,什么对的矢量?对包含指向堆分配对象的指针吗? – Steve314