Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
0 / 0 / 0
Регистрация: 22.04.2011
Сообщений: 4
1

Использование STL в DLL-файлах

22.04.2011, 21:29. Показов 2286. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Хочу использовать библиотеку STL в своем DLL-проекте. В частности для обеспечения функциональности требуется применение классов vector и string.
Проблема заключается в том, что объекты классов, размещенные в этом DLL-файле и работающие с STL-классами, при уничтожении вызывают ошибку. Причем не на стадии компиляции, а во время выполнения программы.
Использовать CArray и CString и другие типы не имеется возможности. Нужен кросс-платформенный код, который можно компилировать как динамические библиотеки.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.04.2011, 21:29
Ответы с готовыми решениями:

Использование указателей на контейнеры STL в заголовочных файлах
Для использования указателей на I/O классы достаточно включить <iosfwd> который содержит...

Как посмотреть значки (иконки) в файлах shell32.dll, imageres.dll
Скажите, пожалуйста, как посмотреть значки (иконки) в файлах shell32.dll, imageres.dll.

В файлах hfnapi.dll и hfpapi.dll вирус
уже дней 5 наверно антивирус находит вирус в файлах hfnapi.dll и hfpapi.dll и не может удалить...

stl и dll
Вот собственно, как передать например stl::vector из dll библиотеке в другую программу... DLL.H...

7
4240 / 2937 / 687
Регистрация: 08.06.2007
Сообщений: 9,817
Записей в блоге: 4
22.04.2011, 22:20 2
Наверно, объект у вас создается в DLL, а уничтожается в основной программе или наоборот? Нужно либо это устранить, либо использовать API функции GlobalAlloc/GlobalFree. Если память выделяется при выполнении new, значит придется переопределять operator new. Имеются другие варианты решения проблемы - пользоваться OLE API функциями типа CoTaskMemAlloc.
0
0 / 0 / 0
Регистрация: 22.04.2011
Сообщений: 4
22.04.2011, 22:40  [ТС] 3
В DLL-файле содержится только исходный код двух классов, один из которых абстрактный. В основной программе создается объект одного из этих классов, потом происходит вызов некоторых функций-членов и завершение программы, а соответственно и удаление объекта.
Специально вызывал деструктор класса и отслеживал все в дебагере - ошибка происходит на нем.
Операторы new и delete используются только во внутренних функциях класса - его объекты создаются простым объявлением.
Отдельно, вне DLL, оба класса совершенно корректно работают.
0
0 / 0 / 3
Регистрация: 19.02.2011
Сообщений: 17
23.04.2011, 15:49 4
http://www.rsdn.ru/article/cpp/stlproblem.xml
0
0 / 0 / 0
Регистрация: 20.03.2011
Сообщений: 10
25.04.2011, 04:48 5
На самом деле может быть много ошибок как явных так и неявных - это просто гадания на кофейной гуще. Если это действительно для тебя большая нерешаемая проблема, давай исходняк с комментариями.
0
0 / 0 / 0
Регистрация: 22.04.2011
Сообщений: 4
25.04.2011, 17:59  [ТС] 6
Все отлично работает без использования .dll, при обычном подключении файлов в проект. Все функции нормально работают и все объекты нормально уничтожаются.
0
0 / 0 / 0
Регистрация: 20.03.2011
Сообщений: 10
26.04.2011, 04:16 7
Ошибка может быть неявной, может себя вести по разному в разных условиях. Наверное ты гденить перекрываешь участок памяти. Всё это происходит в тайне от тебя.
0
0 / 0 / 0
Регистрация: 20.03.2011
Сообщений: 10
28.04.2011, 10:28 8
Помойму ответ на твой вопрос нашолся
http://www.rsdn.ru/
0
28.04.2011, 10:28
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.04.2011, 10:28
Помогаю со студенческими работами здесь

STL внутри DLL
Вопрос, что надо сделать в visual studio, что бы в функции которая находится в DLL можно было...

использование stl
Тема для читателей книг и учебников... Такой способ работы с векторами верен или нет (код рабочий)...

Использование STL
Реализуйте задание с использованием контейнеров и алгоритмов библиотеки STL согласно своему...

Использование STL - C++
Из списков s1 и s2 удалить все элементы с одинаковым содержимым. #include <iostream> #include...

Использование STL
Дана последовательность состоящая из n целых чисел. Найти количество элементов этой...

Использование String Tables в .dll(.dll.mui) (Для VB .NET)
Здравствуйте. Нужно извлечь(а потом запоковать) таблицу строк(string tables ). Допустим есть...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru