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