| 
| 
 | Вопрос # 1 195/ вопрос открыт / | 
 |  Здравствуйте, эксперты! Проблема заключается в следующем, хочу написать приложение БД изпользуя длл. В длл есть форма, на ней компонент запроса, грид, датасоурс. при вызове этой формы из приложения в качестве параметра передаю датабаз. Ошибку выдает если вызвать форму более двух раз, при закрытии приложения. Что делать? Может я как то неправильно передаю датабаз? 
|  |   Вопрос задал: Храмцов Денис (статус: 1-ый класс)Вопрос отправлен: 13 декабря 2007, 15:46
 Состояние вопроса: открыт, ответов: 1.
 |  Ответ #1. Отвечает эксперт: min@y™ Передавать в/из DLL такие вещи как объекты, pascal-строки, динамические массивы есть занятие неблагодарное и ведёт к раку мозгов. Борландовский менеджер памяти вспучивает от таких вещей. Но есть решение - использовать интерфейсы (если нельзя совсем отказаться от DLL). В инете статей по этому поводу полно, но могу прислать и по почте (у меня обширная база знаний по Delphi и С++). 
|  | Ответ отправил: min@y™ (статус: Доктор наук)Время отправки: 14 декабря 2007, 08:39
 
 |  
 Мини-форум вопросаВсего сообщений: 3; последнее сообщение — 14 декабря 2007, 01:04; участников в обсуждении: 3. 
|   | Feniks (статус: Бакалавр), 13 декабря 2007, 16:04 [#1]:Не давно подымалось уже тема по работе с DLL-ками. Ищите Поиском на этом портале. Были неоднократные ответы с сылками на статьи. И не ленитесь приводить примеры ваших кодов, мы ведь не телепаты.   |  
|   | Косолапов Дмитрий Юрьевич (статус: 8-ой класс), 13 декабря 2007, 16:14 [#2]:Боюсь, что ошибка принципиальная - в проекте. Зачем в dll всю эту страсть запихивать (формы, датасурсы и прочее)? |  
|   | Вадим К (статус: Академик), 14 декабря 2007, 01:04 [#3]:Если бы хотя бы написали что за база. Но и без этого видно грубую ошибку. Никогда не передавайте в длл ссылку на объект! Даже если вы подключили ShareMem
 Просто у них разные RTTI. Дальше рассказывать бессмысленно.
 Если вы не понимаете процессов, как всё это происходит, лучше не беритесь. Будете биться лбом и безтолку.
 
 Как вариант, лучше создать bpl (пакет). Это таже длл, но оформленная по специальным правилам компиляторм.
 
 И вообще, формы в длл - это причина многих ошибок.
 Галочка "подтверждения прочтения" - вселенское зло. |  Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |