Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2005.07.18;
Скачать: [xml.tar.bz2];

Вниз

Пара вопросов о DLL   Найти похожие ветки 

 
NewWonder ©   (2005-06-24 00:37) [0]

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


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

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


 
Eraser ©   (2005-06-24 01:47) [2]

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


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


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

2 NewWonder ©   (24.06.05 00:37)

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

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


 
novice_man ©   (2005-06-24 08:28) [4]

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


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


 
Kerk ©   (2005-06-24 08:52) [5]

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


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


 
evvcom ©   (2005-06-24 08:54) [6]


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

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


 
-=XP=- ©   (2005-06-24 10:14) [7]

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

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

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


 
NewWonder ©   (2005-06-24 18:23) [8]

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



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2005.07.18;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.035 c
1-1120041228
Сергей3
2005-06-29 14:33
2005.07.18
Большой массив как параметр процедуры.


1-1119835385
NeoPlayer
2005-06-27 05:23
2005.07.18
Работа со временем


3-1117804272
RavenD
2005-06-03 17:11
2005.07.18
BCD, Float или что то ещё?


14-1119378830
Sulimxar
2005-06-21 22:33
2005.07.18
Производительность


14-1118658811
Sergey Masloff
2005-06-13 14:33
2005.07.18
4 диска с собой на необитаемый остров ;-)





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский