![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| altarasjuk |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 331 Регистрация: 7.5.2003 Где: Харьков Репутация: 1 Всего: 1 |
Всем привет!
Подскажите, плиз, как разбить прогу на несколько DLL и притом чтобы это было поумнее. Вся беда в том, что или нельзя делать классы в DLL или я незнаю как это делать. Вообщем, если кто знает как это сделать, то поделитесь, плиз. Заранее благодарен. -------------------- Правда - изобретение маньяков: колет глаза и режет уши. |
|||
|
||||
| Medved |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 7209 Регистрация: 15.9.2002 Где: Kazakhstan, Astan a Репутация: 14 Всего: 154 |
Выделяешь основные функции, и запихиваешь их в DLL.Я Вам посоветую прежде всего почитать хоть какую-нибудь литературу.
Вот могу дать код, он написан в целях обучения моего младшего брата, показывающий, как работать с DLL на самом примитивном уровне. Думаю не сложно будет разобраться. Код DLL:
Код проекта, подключающего DLL:
-------------------- |
||||
|
|||||
| Dapo |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 417 Регистрация: 18.4.2002 Репутация: нет Всего: 1 |
Использование string в dll нежелательно, так как могут возникать проблемы с разделением памяти, вместо этого нужно целесообразней использовать PChar. Что и написано в тексте сгенеренного Дельфи проекта.
|
|||
|
||||
| Medved |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 7209 Регистрация: 15.9.2002 Где: Kazakhstan, Astan a Репутация: 14 Всего: 154 |
Согласен. -------------------- |
|||
|
||||
| altarasjuk |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 331 Регистрация: 7.5.2003 Где: Харьков Репутация: 1 Всего: 1 |
Народ, может я не так высказался, но то что вы написали всё понятно, проблема в другом, возможно ли каким бы то нибыло образом вынести классы (включая их определения) в DLL.
То что можно все методы данного классы туда вынести - это понятно, но хотелось бы вынести САМ КЛАСС! Вопрос то конечно глупый, можно просто использовать activeX, но нехотелось бы... -------------------- Правда - изобретение маньяков: колет глаза и режет уши. |
|||
|
||||
| Fantasist |
|
|||
|
Лентяй ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1517 Регистрация: 24.3.2002 Репутация: нет Всего: 41 |
Можно, а в чем проблема? -------------------- Волны гасят ветер... |
|||
|
||||
| altarasjuk |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 331 Регистрация: 7.5.2003 Где: Харьков Репутация: 1 Всего: 1 |
Да проблема то в том как импортировать - экспортировать метод - понятно, а как это применить к классу???
-------------------- Правда - изобретение маньяков: колет глаза и режет уши. |
|||
|
||||
| Unregistered |
|
|||
|
Unregistered |
ты хочешь создавать наследников от этого класса?
|
|||
|
||||
| altarasjuk |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 331 Регистрация: 7.5.2003 Где: Харьков Репутация: 1 Всего: 1 |
Да нет просто использовать его, хотя наследование не исключено
-------------------- Правда - изобретение маньяков: колет глаза и режет уши. |
|||
|
||||
| Dapo |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 417 Регистрация: 18.4.2002 Репутация: нет Всего: 1 |
Самый простой пример - TForm. По аналогии для любого другого класса. И, возможно, ты путаешь класс и экземпляр класса? Есть модуль в котором описан какой-то класс. Включи его в длл и в свою прогу. Ну и юзай его.
|
|||
|
||||
| altarasjuk |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 331 Регистрация: 7.5.2003 Где: Харьков Репутация: 1 Всего: 1 |
Да ничего я не путаю. Как делается наследование - я знаю. ПРОБЛЕМА В ТОМ, ЧТОБЫ КЛАСС БЫЛ ОПИСАН В DLL!!! -------------------- Правда - изобретение маньяков: колет глаза и режет уши. |
|||
|
||||
| altarasjuk |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 331 Регистрация: 7.5.2003 Где: Харьков Репутация: 1 Всего: 1 |
А по аоводу включения и туда и сюда - не хотелось бы т.к. это всё делается для того, чтобы получить прогу ввиде нескольких модулей и притом маленьких. -------------------- Правда - изобретение маньяков: колет глаза и режет уши. |
|||
|
||||
| Unregistered |
|
|||
|
Unregistered |
наследовать (в классическом виде) не получиться однозначно...
а чем не устраивает ActiveX? |
|||
|
||||
| altarasjuk |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 331 Регистрация: 7.5.2003 Где: Харьков Репутация: 1 Всего: 1 |
Да там как я понимаю надо описывать TLB.
А в это TLB все параметры имеют весьма экзотичный тип. Да иего надо регистрить в реестре, что тоже снижает привлекательность. -------------------- Правда - изобретение маньяков: колет глаза и режет уши. |
|||
|
||||
| <Spawn> |
|
|||
![]() Око кары:) ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2776 Регистрация: 29.1.2003 Где: Екатеринбург Репутация: 44 Всего: 64 |
В качестве ДЛЛ можно использовать пакеты Дельфи (BPL), поскольку они на самом деле являются ДЛЛ, но обладают большими возможностями при использовании классов. Какими точно я не помню - все ето я мельком просматривал в книге Марко Кенту "Delphi 6 для профессионалов". Так что поищи материальчик про их юзание.
Это сообщение отредактировал(а) <Spawn> - 29.5.2003, 14:51 -------------------- "Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков. |
|||
|
||||
![]()
|
| Правила форума "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. |