У меня есть код, который мне нужно поместить в общую библиотеку DLL. Этот код, класс CalibrationFileData
, прекрасно работает, когда он построен как часть текущего проекта. Однако, если в общей библиотеке встроено CalibrationFileData
, программа вылетает, упоминая повреждения кучи.
Я позаботился о том, чтобы все выделения и освобождения происходили внутри класса, с соответствующими средствами доступа и т. Д. Тем не менее проблема не исчезнет. На всякий случай, если это имеет какое-то значение, я иногда передаю векторы пар, определенно не простые старые данные, но манипулирование вектором происходит только через методы доступа, поэтому не должно быть никакого распределения между модулями.
Что-нибудь, что мне не хватает?
Редактировать: Векторы:
std::vector<std::pair<CvPoint2D32f, CvPoint3D32f>>* extrinsicCorrespondences;
std::vector<int>* pointsPerImage;
Мне не нужно беспокоиться о глубоких копиях, поскольку они не выделены в куче, верно? Кстати, я пытался использовать указатели для векторов, как указано выше, чтобы обойти проблему, но это все равно ничего не изменило.