Re: Экспорт boost::shared_ptr из dll
От: Onorin Нигерия  
Дата: 14.08.09 20:33
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Всем привет,

А>В 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, то падения нет.
А>Самое удивительное что дебаг версия работает без проблем.

А>Что тут не так?

Разные менеджеры памяти
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.