![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| Unregistered |
|
|||
|
Unregistered |
1. TLB Дельфя тебе может написать сама для любой Dll (если ты ее попросишь)
2. "Экзотические типы" придется использовать однозначно (деректива stdcall это какрас для конвертации праметров процедур из "экзотического" (нравиться мне слово) типа в паскалевский) 3. Наверное BPL для тебя и вправду лучший вариант, но хорошо ли ты себе представляешь задачу? расскажи почему возникла необходимость "делить" проект? почему нельзя пользоваться общей библиотекой классов? |
|||
|
||||
| altarasjuk |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 331 Регистрация: 7.5.2003 Где: Харьков Репутация: 1 Всего: 1 |
Короче ситуация такова:
Есто проект. Этот проект постоянно совершенствуется и обновляется. Тянуть из инета каждый раз по 3 метра не очень. Вот и разбиваю, чтобы вытягивать только новое. -------------------- Правда - изобретение маньяков: колет глаза и режет уши. |
|||
|
||||
| Unregistered |
|
|||
|
Unregistered |
можно написать библиотеку классов (набор исходников) и при внесение изменений в тот или иной класс обновлять соответствующий исходник и перекомпилять проект (для меня это лучший вариант, я тоже не доверяю ole типам
|
|||
|
||||
| altarasjuk |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 331 Регистрация: 7.5.2003 Где: Харьков Репутация: 1 Всего: 1 |
Вот это-то и оно. Ради того, чтобы сам exe не перекомпиливать это всё и затеено!!! -------------------- Правда - изобретение маньяков: колет глаза и режет уши. |
|||
|
||||
| Unregistered |
|
|||
|
Unregistered |
ну и ладноть...
так какие проблемы то, давай сделаем на ActiveX... расскажи что конкретно хочешь, пока время есть вместе замусолим...;) |
|||
|
||||
| Cashey |
|
|||
![]() Бессмертный ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3441 Регистрация: 13.11.2002 Где: в столице Репутация: 2 Всего: 60 |
Если ваша программа включает VisualCLX компоненты, Вы должны использовать пакеты вместо DLL. Только пакеты могут управлять запуском и закрытием Qt -------------------- библия учит любить ближнего, а камасутра обучает как именно |
|||
|
||||
| Unregistered |
|
|||
|
Unregistered |
Cashey Спасибо, друг...
ты ответил на мой извечный вопрос: "почему не регистрятся некоторые Dll?..." спасибо... |
|||
|
||||
| altarasjuk |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 331 Регистрация: 7.5.2003 Где: Харьков Репутация: 1 Всего: 1 |
Unregistered Я может неправильно выразился, но всё это для того, чтобы НЕ ПЕРЕКОМПИЛИВАТЬ ПРОЕКТ, А ТОЛЬКО ОДИН МОДУЛЬ! -------------------- Правда - изобретение маньяков: колет глаза и режет уши. |
||||
|
|||||
| Unregistered |
|
|||
|
Unregistered |
По мне так если прога не распределенная и средство разработки одно то кроме гемороя с этой модульностью ничего не получиться. Компоненты писать безусловно надо, но зачем их в dll прятать...?
|
|||
|
||||
| altarasjuk |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 331 Регистрация: 7.5.2003 Где: Харьков Репутация: 1 Всего: 1 |
То есть если я понял то есть только один вариант - компоненты. Но в них есть недостаток - расширение.
Не хотелось бы, чтобы народу с первого взгляда было понятно на чём писано... Да и DLL как-то попривычней для взгляда... Ну если тока так - то буду разделять на компоненты. А вот по поводу гемороя - тут никуда ни денешся. -------------------- Правда - изобретение маньяков: колет глаза и режет уши. |
|||
|
||||
| Fantasist |
|
||||||||
|
Лентяй ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1517 Регистрация: 24.3.2002 Репутация: нет Всего: 41 |
Честно говоря, до сих пор не понял проблему. Что значит "экспортировать классы"? Как ты это себе предствляешь? Если ты используешь эти классы в екзешнике, то описание этих классов тебе все равно надо включить в код екзешника, а для этого вполне подойдут обыкновенные исходники. А уж указатель на экземпляр класса передать вообще нет никаких проблем. В хорошой реализации это будет выглядеть так:
mobj_ifc.pas
mobj_imp.pas
mobj_dll.dpr
main_exe.pas
-------------------- Волны гасят ветер... |
||||||||
|
|||||||||
| Unregistered |
|
|||
|
Unregistered |
а меня есть сомнения (и большие) что приведенный код заработает.
1. неплохо было бы в маинехе в интерфейсе хотябы описать интерфейс имобж 2. у длл и приложения разные адресные пространства и хз что за указатель получиться. Для идентификации интерфейсов используют гуид, а для получения экземпляра по интерфейсу - фабрику классов... хотя в дельфях все выглядит очень приметивно. |
|||
|
||||
| altarasjuk |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 331 Регистрация: 7.5.2003 Где: Харьков Репутация: 1 Всего: 1 |
Да вообщем то спасибо, народ.
Вообщем я решил остановиться на компонентах. -------------------- Правда - изобретение маньяков: колет глаза и режет уши. |
|||
|
||||
| Fantasist |
|
||||||||
|
Лентяй ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1517 Регистрация: 24.3.2002 Репутация: нет Всего: 41 |
main_exe.pas
На это вам стоило бы обратить внимание.
Ничего подобного - адресное пространство одно и то же, указатель передавать вполне можно.
GUID добавить не проблема - Shift+Сtrl+G. Фабрикой классов как раз и выступает функция CreateMObj. Делать отдельный объект+интерфейс совершенно необязательно. -------------------- Волны гасят ветер... |
||||||||
|
|||||||||
| Unregistered |
|
|||
|
Unregistered |
Прошу прощения за неточности (а точнее говоря бред) который написал выше (был пьян
однако, нельзя ли вместо uses mobj_ifc; использовать только гуид интерфейса? если длл зарегистрирована на др. машине можно ли будет пользоваться указателем на интерфейс (CreateMObj Result)? |
|||
|
||||
![]()
|
| Правила форума "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. |