Экспорт boost::shared_ptr из dll
От: Аноним  
Дата: 14.08.09 15:18
Оценка:
Всем привет,
В 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...
Пока на собственное сообщение не было ответов, его можно удалить.