Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.11.2010, 16:38   #1
_-Re@l-_
C++, Java
Старожил
 
Аватар для _-Re@l-_
 
Регистрация: 10.04.2010
Сообщений: 2,665
Восклицание Экспорт классов в DLL

Вот есть динамическая библиотека, например, содержит такой код:
Код:
Library MyDLL;

Type
       MyClass = object
       Private
       //свойства
       Public
       //методы
End;

//что-нибудь ещё

begin
end.
И вот вопрос: можно ли экспортировать классы в DLL?Т.е. вот так:
Код:
Exports
           MyClass; //или как нибудь ещё
Или нельзя?
_-Re@l-_ вне форума Ответить с цитированием
Старый 15.11.2010, 17:03   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Классы нельзя.
Сделай просто библиотеку типов - и будет тебе экспорт классов, но не в DLL а в BPL для удобства.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 15.11.2010, 17:04   #3
_-Re@l-_
C++, Java
Старожил
 
Аватар для _-Re@l-_
 
Регистрация: 10.04.2010
Сообщений: 2,665
По умолчанию

Цитата:
BPL
Что есть BPL?
_-Re@l-_ вне форума Ответить с цитированием
Старый 15.11.2010, 17:18   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Это DLL, специально придуманная Борландом для более удобного хранения компонентов, которые представляют собой частный вид классов.
Можно и в DLL закатать, а потом просто подключить ее как компонент.
При этом Делфи создаст описание библиотеки типов tlb, в котором и будет описание твоих классов, реализация которых в ДЛЛ.
Примерно так, если в кратце.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 15.11.2010, 17:23   #5
_-Re@l-_
C++, Java
Старожил
 
Аватар для _-Re@l-_
 
Регистрация: 10.04.2010
Сообщений: 2,665
По умолчанию

Который?
_-Re@l-_ вне форума Ответить с цитированием
Старый 15.11.2010, 17:33   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Пакет.
Почитай теорию о BPL.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 15.11.2010, 19:33   #7
_-Re@l-_
C++, Java
Старожил
 
Аватар для _-Re@l-_
 
Регистрация: 10.04.2010
Сообщений: 2,665
По умолчанию

Пакет??????????????
Так в пакет ведь пихают модули(.pas) - например, dclusr.dpk включает в себя кучу таких...
т.е. вы предлагаете мне создать модуль, в нём описать класс и запихать этот модуль в пакет?Не, мне это нафиг не надо.
Я всё-таки хотел бы как-нибудь через DLL....
_-Re@l-_ вне форума Ответить с цитированием
Старый 15.11.2010, 20:28   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Так в пакет ведь пихают модули
А для чего? Не выяснил? Во что потом пакет компилируется знаешь?
Удивись - Пакет компилируется в BPL. И содержит в себе все классы и их реализацию, которую ты в его модулях описал.
По умолчанке Делфи компилирует пакеты в папку \Projects\Bpl\. Загляни туда - там должны быть все нестандартные пакеты, а точнее их BPLки.
Цитата:
Не, мне это нафиг не надо.
Хозяин - барин.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 15.11.2010, 21:33   #9
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

Лично я поступил бы так:
В самой dll объявил бы
Код:
Var
 Warehouse : Array Of TMyClass;
И сделал бы обертку каждому методу и свойству в виде функций и процедур. Так же надо сделать функи добавляющие\убирающие из храниища экземпляры.
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Старый 16.11.2010, 12:23   #10
JTG
я получил эту роль
Старожил
 
Аватар для JTG
 
Регистрация: 25.05.2007
Сообщений: 3,694
По умолчанию

Цитата:
обертку каждому методу и свойству в виде функций и процедур
Ох уж эти изобретатели велосипедов

Код:
type 
  IMyClass = Interface(IInterface)
    function GetData: string;
  end;

  TMyClass = Class(TInterfacedObject, IMyClass)
    fData: string;
    constructor Create(data: string);
    function GetData: string;
  end;
пыщь

Последний раз редактировалось JTG; 16.11.2010 в 12:52.
JTG вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
экспорт в dll varelik Общие вопросы Delphi 3 13.01.2010 11:30
Создание классов и использование объектов классов при написании программ в среде C++. Frozen inside Помощь студентам 0 16.04.2009 23:18
Библиотека классов != обычная DLL ? darkstarx Общие вопросы .NET 3 14.04.2008 14:41
Использование C++ классов из native DLL в .NET C# lexluther Общие вопросы C/C++ 1 31.01.2007 22:00
экспорт классов из Dll Alar Общие вопросы Delphi 0 29.10.2006 21:53