Здравствуйте, Hayabusa, Вы писали:
H>Доброго дня всем,
H>Есть такая задача:
H>Экспортируемая функция из DLL возвращает указатель на экземпляр созданного класса.
H>В приложении DLL загружается динамически. Получаю указатель на экземпляр, вроде даже методы класса вызываются.
H>Но при попытке delete на указатель, выскакивает исключение при освобождении памяти.
H>Экспортируемая функция объявлена так
H>H>extern "C" CSomeClass* CALLBACK GetObject(void);
H>
H>Что нужно еще сделать для нормальной работы с экземпляром класса?
H>Как правильно его потом освобождать?
У EXE и DLL разные менеджеры кучи, в одном манагере кучи ты выделяешь память, а в другом удаляешь. Под виндами так нельзя. Нужно, чтобы тот менеджер кучи, который выделил память, также заботился об освобождении.