![]() |
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]() ![]() ![]() |
|
lnix |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 53 Регистрация: 5.10.2009 Репутация: нет Всего: нет |
Проблема в следующем:
Есть приложение и dll. Объединены они одним проектом. И приложение и dll используют один и тот же тип данных. Можно ли как-либо сделать, чтобы типы и в приложении и в dll описывались из одного места? Заранее благодарен. |
|||
|
||||
Alexeis |
|
|||
![]() Амеба ![]() Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 109 Всего: 459 |
Если тип данных структура, то можно дублировать описание. Иначе придется размещать код в bpl. Но при этом нужны будет тащить несколько стандартных bpl-ок. Это займет около 2х-3х Мб . Не так уж много, но зависит от цели. Если цель была сэкономить, то очевидно добавив несколько лишних мегабайт будет не меньше, а больше. -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
lnix |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 53 Регистрация: 5.10.2009 Репутация: нет Всего: нет |
Да, приблизительно так себе и представлял.
А можно через реестр как либо перекидывать параметры? |
|||
|
||||
Alexeis |
|
|||
![]() Амеба ![]() Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 109 Всего: 459 |
Какие еще параметры? В опциях проекта указать компилировать с bpl и указать какие именно bpl использовать. Реестр ни при чем. Это линкер связывает. -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
lnix |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 53 Регистрация: 5.10.2009 Репутация: нет Всего: нет |
А через интерфейс передавать объект типа с новыми параметрами (в частности размер буфера)
Добавлено через 39 секунд А параметры буфера для всех устанавливать через реестр |
|||
|
||||
Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 192 Всего: 484 |
Описать можно в отдельном pas файле. Просто подключить его и туда и туда.
Но обмениваться объектами между приложением и dll нельзя. Обмен с dll возможен только на уровне примитивных типов. По сути возможно обмениваться только числами и указателями. Так что ни о каких объектах речи вообще идти не может. Даже строки исключены. |
|||
|
||||
Alexeis |
|
|||
![]() Амеба ![]() Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 109 Всего: 459 |
Не пугай уж так. Строки типа PChar или WideString уж точно работать будет без дополнительных телодвижений. Простые объектики не использующие RTTI (явно или неявно) также будут работать, но уже при наличии общего менеждера памяти. -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
lnix |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 53 Регистрация: 5.10.2009 Репутация: нет Всего: нет |
Благодарю, попробую.
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Общие вопросы" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |