CRT и DLL
От: ShootNik  
Дата: 29.11.05 07:04
Оценка:
Существует проблема вызова функций испульзующих STL и располагающихся в DLL, тем что при выделении памяти в дебажной версии они выкидывают ASSERT ( в релизе вообще ничего хорошего не жду). Просмотрел много материала на эту тему и запутался)) Помогите разобратся как лучше решить проблему!! Всеж хочется совсем избавится от использования CRT но использовать STL. Как это соотносится с VC7? Поскольку статья "Анатомия C Run-Time, или Как сделать программу немного меньшего размера" и "Заметка о некоторых особенностях использования STL в DLL" для VC6. Есть ли какая нить адаптация STL для такой проблемы только VC7? Поскольку если использую вектор, то библиотека CRT всеж прикручивается
Re: CRT и DLL
От: ShootNik  
Дата: 01.12.05 10:24
Оценка:
Подскажите что делать((, неужто никто не знает
Re: CRT и DLL
От: RUMACTEP Россия  
Дата: 01.12.05 11:56
Оценка:
Здравствуйте, ShootNik, Вы писали:

SN>Существует проблема вызова функций испульзующих STL и располагающихся в DLL, тем что при выделении памяти в дебажной версии они выкидывают ASSERT ( в релизе вообще ничего хорошего не жду). Просмотрел много материала на эту тему и запутался)) Помогите разобратся как лучше решить проблему!! Всеж хочется совсем избавится от использования CRT но использовать STL. Как это соотносится с VC7? Поскольку статья "Анатомия C Run-Time, или Как сделать программу немного меньшего размера" и "Заметка о некоторых особенностях использования STL в DLL" для VC6. Есть ли какая нить адаптация STL для такой проблемы только VC7? Поскольку если использую вектор, то библиотека CRT всеж прикручивается


В чем вопрос-то?

Да, есть проблемы использования STL в DLL под VC6, и такой проблемы под VC7 насколько я знаю, нету.
Правило наименьшего удивления: Программа должна работать так, чтобы это вызывало наименьшее удивление у пользователя.
Построй свой мини-горд на http://rumactep.myminicity.com/
Re: CRT и DLL
От: Left2 Украина  
Дата: 01.12.05 12:40
Оценка:
Проблемы будут только в том случае если ты выделяешь память в одной Dll(EXE), а освобождаешь в другой. Другими словами, только если у тебя stl-евские обьекты (в принципе, не только STL-евские, но для STL проще не заметить где выделяется память) передаются через интерфейс Dll. Решение в лоб — юзай COM (в нём строго регламентировано где, кем и как освобождается память).

Если у тебя STL-обьекты за пределы Dll не передаются, никаких проблем не получишь.
Re[2]: CRT и DLL
От: srggal Украина  
Дата: 01.12.05 13:18
Оценка: +1
Здравствуйте, Left2, Вы писали:

L>Проблемы будут только в том случае если ты выделяешь память в одной Dll(EXE), а освобождаешь в другой. Другими словами, только если у тебя stl-евские обьекты (в принципе, не только STL-евские, но для STL проще не заметить где выделяется память) передаются через интерфейс Dll. Решение в лоб — юзай COM (в нём строго регламентировано где, кем и как освобождается память).


L>Если у тебя STL-обьекты за пределы Dll не передаются, никаких проблем не получишь.


Даже если передаются, то в VC 2002 и выше, вроде не было проблем при использовании DLL versions of the run-time libraries
... << RSDN@Home 1.1.4 stable rev. 510>>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.