Поиск:

Ответ в темуСоздание новой темы Создание опроса
> dll + exe = общий менеджер памяти 
:(
    Опции темы
Vyacheslav
Дата 20.9.2005, 14:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2124
Регистрация: 25.3.2002
Где: Москва

Репутация: нет
Всего: 59



Имееется следующая архитектура
test.exe - испольняемый модуль
plugin.dll - динамически загрудаемый модуль, который используется exe
lib.dll - библиотека, импортирующая классы - статически линкуется с exe и dll.
Используется stl
С какими настройками нужно собрать все это, что бы не было проблем при освобожении памяти. Если lib делать как статическую библиотеку, то все работает без пробем. При использовании dll все тоже нормально работает, но при завершении программы выдается accsess violation при освобождении статических объектов






--------------------
С уважением, Вячеслав Ермолаев
PM MAIL WWW ICQ   Вверх
srd
Дата 20.9.2005, 14:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нереварин
**


Профиль
Группа: Участник Клуба
Сообщений: 951
Регистрация: 30.8.2003
Где: Владивосток

Репутация: 5
Всего: 49



Vyacheslav
Какая версия MSVC? В данной статье (http://rsdn.ru/article/cpp/stlproblem.xml) написано, что STL, поставляющася с VC5.0 и VC6.0 не может корректно работать в DLL.


--------------------
Не смей читать мою подпись!!!
PM MAIL Jabber   Вверх
srd
Дата 20.9.2005, 15:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нереварин
**


Профиль
Группа: Участник Клуба
Сообщений: 951
Регистрация: 30.8.2003
Где: Владивосток

Репутация: 5
Всего: 49



ИМХО, если проблема действительно в этом, то лучше уж другую STL взять. Есть же STLPort. В стороно дефолтной STL в VC6.0 всегда было очень много ругани.



--------------------
Не смей читать мою подпись!!!
PM MAIL Jabber   Вверх
Vyacheslav
Дата 22.9.2005, 15:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2124
Регистрация: 25.3.2002
Где: Москва

Репутация: нет
Всего: 59



Все решилось просто. У всех проектов нужно было в Use runtime library поставить Multithreaded Dll


--------------------
С уважением, Вячеслав Ермолаев
PM MAIL WWW ICQ   Вверх
srd
Дата 22.9.2005, 15:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нереварин
**


Профиль
Группа: Участник Клуба
Сообщений: 951
Регистрация: 30.8.2003
Где: Владивосток

Репутация: 5
Всего: 49



Именно Multi-threaded DLL? Или надо, чтобы все модули линковались с одной и той же версией CRT?

Раньше я старался делать монолитные приложения, а сейчас свой проект хочу на несколько частей побить, вот боюсь граблей огрести.


--------------------
Не смей читать мою подпись!!!
PM MAIL Jabber   Вверх
Vyacheslav
Дата 23.9.2005, 09:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2124
Регистрация: 25.3.2002
Где: Москва

Репутация: нет
Всего: 59



Все решилось именно установкой Multi-threaded DLL.



--------------------
С уважением, Вячеслав Ермолаев
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Visual C++/MFC/WTL | Следующая тема »


 




[ Время генерации скрипта: 0.0441 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.