Здравствуйте, Аноним, Вы писали:
А>Всем привет,
А>В DLL библиотеки есть интерфейс:
А>А>// core.h
А>struct type
А>{
А> virtual ~type() { }
А> virtual std::wstring get_name() const = 0;
А>};
А>boost::shared_ptr<type> __declspec(dllexport) create_type(const std::wstring& name);
А>
А>Имплементация:
А>А>// core.cpp
А>namespace
А>{
А> class type_impl : public type
А> {
А> wstring m_name; // should be unique for connector
А> public:
А> explicit type_impl(const wstring& name): m_name(name){}
А> virtual wstring get_name() const{ return m_name; }
А> };
А>}
А>boost::shared_ptr<type> create_type(const wstring& name);
А>
А>Я использую статически эту DLL из другой DLL, где создаю типы с помощью метода create_type.
А>При этом в релизе происходит падение при освобождении памяти. Точно по стеку понять где не получается, но если закомментировать код с вызовом create_type, то падения нет.
А>Самое удивительное что дебаг версия работает без проблем.
А>Что тут не так?
Разные менеджеры памяти