Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Класс в dll 
:(
    Опции темы
hug
Дата 17.8.2007, 06:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 87
Регистрация: 27.7.2007

Репутация: нет
Всего: нет



Написал в Delphi пару классов, которые требуется засунуть в dll ку для переносимости кода
Подскажите пожалуйста как классы экспортируются в dll
А то в печтнах изданиях везде говорится только про экспорт функций

Т.е. как создать библиотеку класса
чтобы этот классможно было использовать потом еще где-нибуть
Прочитал на форуме что можно писать функции, которые используют мой класс и экспортировать их
Но мне нужно чтобы все функции выполнялись с одним и тем же экземпляром класса

Это сообщение отредактировал(а) hug - 17.8.2007, 07:01
PM MAIL   Вверх
EvilsInterrupt
Дата 17.8.2007, 06:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Executables research
***


Профиль
Группа: Завсегдатай
Сообщений: 1019
Регистрация: 14.7.2007
Где: Железнодорожный, МО, Россия

Репутация: 3
Всего: 9



hug, 
function GetMyClass : тута_классовая_ссылка
PM MAIL WWW ICQ Jabber   Вверх
hug
Дата 17.8.2007, 07:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 87
Регистрация: 27.7.2007

Репутация: нет
Всего: нет



Спасибо,  а что скажете нащщет экспорта?
PM MAIL   Вверх
EvilsInterrupt
Дата 17.8.2007, 08:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Executables research
***


Профиль
Группа: Завсегдатай
Сообщений: 1019
Регистрация: 14.7.2007
Где: Железнодорожный, МО, Россия

Репутация: 3
Всего: 9



hug, 
Все же в одном нафих!!! ;)

Как правило ты работаешь такс:
Код

obj : TObject;
obj := TObject.Create;


вот! obj щас что такое? Думаешь область памяти SizeOf(TObject)  ? неа, это указатель! Но этот указатель отличается от указателя о котором я хочу тебе сказать, а впрочем держи:

Цитата

Class-Reference Types 
A class-reference type, sometimes called a metaclass, is denoted by a construction of the form
 
class of type 
where type is any class type. The identifier type itself denotes a value whose type is class of type. If type1 is an ancestor of type2, then class of type2 is assignment-compatible with class of type1. Thus
Код

 type TClass = class of TObject; 
var AnyObj: TClass;

declares a variable called AnyObj that can hold a reference to any class. (The definition of a class-reference type cannot occur directly in a variable declaration or parameter list.) You can assign the value nil to a variable of any class-reference type.
 
To see how class-reference types are used, look at the declaration of the constructor for Borland.VCL.Classes.TCollection (in the Classes unit):
Код

 type TCollectionItemClass = class of TCollectionItem; 
     ... 
constructor Create(ItemClass: TCollectionItemClass);



Добавлено через 3 минуты и 4 секунды
Значит можешь создать юнит в котором есть интерфейс твоего класса, который ты хочешь предоставить на экспорт и сделай:
1. Функцию возвращающую классовую ссылку на твой класс
2. а о тому кто будет юзать дай свой юнит

Если на импорт:
1. Вызови ф-цию и получи классовую ссылку
2. А чтобы юзать тебе нужен будет юнит этого класса

зы:
2 Гуру: Если намудрил поправьте или есть способ попроще, так я буду рад узнать

Добавлено через 5 минут и 12 секунд
Еще:
Нафига вообще тебе класс возвращать?
Можно:
1. Если будут дельфийцы юзать, то сделай на Interface и в ф-ции экспорта возвращай этот интерфейс
2. Если нетолько дельфийцы рекомендую COM-технологию, т.к. манов по ней хоть попой кушай!
PM MAIL WWW ICQ Jabber   Вверх
hug
Дата 17.8.2007, 08:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 87
Регистрация: 27.7.2007

Репутация: нет
Всего: нет



EvilsInterrupt, спасибо Вам за подробности
был бы 100 дал бы +
У меня проблема такая написан в делфи класс интерпретатор бугалтерских выражений.
И вот хотелось бы чтобы возможности этого класса мог использовать не только я,  а например нам этот класс в php? 
или с++. Вот поэтому и возникла необходимость в библиотеке.
Как лучше поступить для универсализации кода?(для доступности функциональности из разных приложений)

Это сообщение отредактировал(а) hug - 17.8.2007, 08:13
PM MAIL   Вверх
aktuba
Дата 17.8.2007, 08:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Смышленный
***


Профиль
Группа: Завсегдатай
Сообщений: 1915
Регистрация: 24.4.2006
Где: Планета Земля

Репутация: 16
Всего: 38



Класс из Delphi в PHP??? Слушай, как научишься - меня тоже научи...  smile 


--------------------
user posted image
PM MAIL WWW Skype   Вверх
skyboy
Дата 17.8.2007, 09:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 4
Всего: 260



Цитата(aktuba @  17.8.2007,  07:59 Найти цитируемый пост)
Класс из Delphi в PHP??? 

наверное, такое возможно-таки:
Get_active_object
так что работа с СОМ есть.
PM MAIL   Вверх
EvilsInterrupt
Дата 17.8.2007, 09:35 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Executables research
***


Профиль
Группа: Завсегдатай
Сообщений: 1019
Регистрация: 14.7.2007
Где: Железнодорожный, МО, Россия

Репутация: 3
Всего: 9



hug, Постарайся не разбрасываться, всего не охватишь полюбому, потому и придумали термин "Предметная область". Напиши все что хошь на листок, отбрось то без чего пусть хреново но сможешь продать ПО, но сделай так, чтобы можно было нарастить!
PM MAIL WWW ICQ Jabber   Вверх
hug
Дата 17.8.2007, 09:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 87
Регистрация: 27.7.2007

Репутация: нет
Всего: нет



Окей
тогда скажите пожалуйста как и на чем надо писать
чтобы это можно было использовать в различнах приложениях разработки?
Может все переписать на с?
может экспортировать в длл не все методы класса а функцию использующую этот класс?
может дейтвительно со скриптовым пхп это невозмжно и хотябы создать длл для работы в с\с++ ?

PM MAIL   Вверх
aktuba
Дата 17.8.2007, 10:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Смышленный
***


Профиль
Группа: Завсегдатай
Сообщений: 1915
Регистрация: 24.4.2006
Где: Планета Земля

Репутация: 16
Всего: 38



Цитата

так что работа с СОМ есть. 


Да, но только в среде Windows. А пхп чаще всего используется в Unix, т.ч. от COM тут толку ноль...

Цитата

может экспортировать в длл не все методы класса а функцию использующую этот класс?


Конечно, т.к. использовать именно класс нигде, кроме Delphi не получится. Только процедуры/функции и то с ограничениями.

Цитата

чтобы это можно было использовать в различнах приложениях разработки?


А это действительно необходимо??? Насколько этот класс уникален в разработке и насколько часто он нужен? Нужен ли он в других средствах разработки???


--------------------
user posted image
PM MAIL WWW Skype   Вверх
skyboy
Дата 17.8.2007, 10:44 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 4
Всего: 260



Цитата(aktuba @  17.8.2007,  09:11 Найти цитируемый пост)
Да, но только в среде Windows. А пхп чаще всего используется в Unix, т.ч. от COM тут толку ноль...

поручик, вы меня удивляете smile речь о РЕ-dll и ЕХЕшнике, созданном в Delphi. о какой ОС мы сейчас говориим?
PM MAIL   Вверх
hug
Дата 17.8.2007, 11:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 87
Регистрация: 27.7.2007

Репутация: нет
Всего: нет



Ребят а если я напишу на голом си?
Я смогу потом функции импортнуть в php?
PM MAIL   Вверх
EvilsInterrupt
Дата 17.8.2007, 14:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Executables research
***


Профиль
Группа: Завсегдатай
Сообщений: 1019
Регистрация: 14.7.2007
Где: Железнодорожный, МО, Россия

Репутация: 3
Всего: 9



hug, Я еще ниразу не видел, чтобы такая было нужно под все языки, ОСи. Скажи мне плиз почему ты так извращаешься? В чем задача? Может у тебя узкая задача, а ты загоняешь себя в тупик. Или проект на большие бабки? Тогда что мешает варизить в стиле: Механизм1 читает Вещь1 и т.д.
PM MAIL WWW ICQ Jabber   Вверх
aktuba
Дата 17.8.2007, 15:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Смышленный
***


Профиль
Группа: Завсегдатай
Сообщений: 1915
Регистрация: 24.4.2006
Где: Планета Земля

Репутация: 16
Всего: 38



Цитата

поручик, вы меня удивляете smile речь о РЕ-dll и ЕХЕшнике, созданном в Delphi. о какой ОС мы сейчас говориим? 


Ну это мы говорим, а автор сам не знает о чем говорит  smile 

Цитата

Ребят а если я напишу на голом си?
Я смогу потом функции импортнуть в php? 


 smile что ты под этим подразумеваешь? импортировать именно класс? тогда нет.


--------------------
user posted image
PM MAIL WWW Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0700 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.