| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > Проблема с импортом класса из DLL |
| Автор: maksr 26.7.2007, 18:14 | ||||
Вот класс на экспорт:
Этот класс на импорт:
Если объявить переменную данного класса как глобальную всё работает, если же объявить её как указатель либо локальную то при удалении её из памяти велезает ошибка о том, что читаем за пределами heap памяти. |
| Автор: Earnest 26.7.2007, 18:29 |
| Насчет "локальной" есть сомнения, что ты напутал - при чем здесь heap. А вот если указатель на динамическую память, то видимо, ты удаляешь ее не там, где создаешь (т.е. создает вызов из одного модуля, а удаляет - из другого). И, похоже, модули используют разные хипы. Так бывает, если, например, два модуля статически слинкованы с рантаймами. Лучшее решение вопроса - использовать единую DLL-версию рантайма. Тогда с созданием\удалением проблем не будет. Или - придется всю жисть следить, чтобы переменные удалялиь тем же кодом, где и создаются. Т.е. предусмотреть статические функции Create и Delete и запретить явный вызов конструкторов\деструкторов. |