Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
Посмотрел на календарь... 25.02.03 18:16 Число просмотров: 795
Автор: Green Статус: Незарегистрированный пользователь
|
А товарищи chaka и cb правы.
Точно знаю, что такая фигня (я про DLL и EXE) твориться с new / delete, а т.к. они построены на malloc и free, могу предположить, что и в прямом их использовании будут те же проблемы.
> Сегодня не первое апреля... > > > все зависит от реализации run-time библиотек которые > ты > > используешь - run-time от msvc ведет себя следующим > > образом: > > - при статической линковке run-time библиотек каждый > > собранный модуль (dll/exe) получает собственную кучу > откуда > > выделяется память (malloc/alloc), соответственно при > > попытке освободить память в модуле отличном от того в > > котором эта память была выделена - приведет к ошибке. > > Бред. Даже не поленился сейчас тестик написать. Все > работает нормально (что и не удивительно). В противном > случае куча проектов бы давно отвалились, это раз, а два: > весь COM основан на передаче указателей между модулями (мы > говорим сейчас об одном процессе ! так что, умных слов типа > "маршалинг" - не надо !). > > > - если же run-time библиотека линкуется как внешняя > dll - > > то у этой dll будет своя собственная куча и > соответсвенно > > память будет браться всегда из нее и приблем с > > выделением/освобождением не будет... > > > > ничего не понял. > > > В общем-то на мой взгляд память должна быть > освобождена тем > > кто ее выделял - это как минимум безопасней... > > Это верно, но на счет Dll и Exe - полный бред.
|
|
|