Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Пара вопросов о DLL [D7, WinXP]


NewWonder ©   (2005-06-24 00:37:00) 

Dll, написанную на Дельфи можно использовать и на C++? И ещё вопросик: можно ли в Dll запихать класс?


NewWonder   (2005-06-24 18:23:00) [1]

Огромное спасибо за Ваши ответы!


-=XP=-   (2005-06-24 10:14:00) [2]

Dll, написанную на Дельфи можно использовать и на C++?

Можно, но при соблюдении нескольких условий:
- лучше не (хотя, скорее всего, просто НЕ) использовать строки Delphi, а если и использовать, то тщательно изучить и реализовать логику работы ShareMem; лучше - использовать тип PChar (PWideChar и иже с ними).
- луше не (тоже, скорее всего, просто НЕ) использовать классы Delphi, так как RTTI информация в разных модулях (EXE и DLL) - разная; в случае, если имеется хоть какое-то различие между VMT, будете обеспечены Access Violation на всю оставшуюся жизнь (программы).
- вместо этого лучше использовать, как уже было сказано, интерфейсы - они как раз для этого и предназначены - обеспечивать "прозрачное" взаимодействие.
- если используется VCL, а именно, модуль Forms, то необходимо как-то (как - Вам решать) "затыкать" каждый "внутренний" (для каждой DLL) экземпляр класса Application, иначе будут некторые, впрочем, весьма "безболезненные" последствия; ничего "страшного" в этом нет, но, с точки зрения оптимальности, как-то глупо для каждой DLL иметь Application (со своим скрытым окном - впрочем, их можно "совместить"), да еще и Screen, и еще много прочих вспомогательных объектов;

Прочих ограничений и "подводных камней", вроде бы нет.


evvcom   (2005-06-24 08:54:00) [3]


> можно использовать и на C++?

использовать-то можно, вот только сложность использования будет сильно зависеть от того, как ты напишешь эту dll.


Kerk   (2005-06-24 08:52:00) [4]

Германн ©   (24.06.05 2:23) [3]
А уж "запихать" - "Как только, так сразу"! Ты только скажи кому и как!


"..Бывает, что и по морде, но обычно впендюриваю."
:))))


novice_man   (2005-06-24 08:28:00) [5]

NewWonder ©   (24.06.05 0:37)
... можно ли в Dll запихать класс?


Интерфейсы ???


Германн   (2005-06-24 02:23:00) [6]

2 NewWonder ©   (24.06.05 00:37)

imho, "Dll, написанную на Дельфи можно использовать" всегда, но с учетом "соглашения о вызовах".
По поводу классов - Классы есть разные. Какие вас интересуют? И как вы хотите их использовать?

А уж "запихать" - "Как только, так сразу"! Ты только скажи кому и как!


Eraser   (2005-06-24 01:47:00) [7]

NewWonder ©   (24.06.05 00:37)
можно ли в Dll запихать класс?


Можно, но в экспортируемых ф-ях лучще классы не предавать.


P.N.P.   (2005-06-24 00:51:00) [8]

>NewWonder ©   (24.06.05 00:37)
>можно использовать и на C++?
Можно.
>в Dll запихать класс
Что значит "запихать"?


Наверх

Титульная страница Поиск, карта сайта Написать письмо