Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.07.04;
Скачать: CL | DM;

Вниз

Каким образом получить доступ объекту DLL ки к объекту главного п   Найти похожие ветки 

 
GrowlmonizeR   (2004-06-20 11:06) [0]

Приветствую Вас всех! У меня имеет место быть следующий вопрос. Заранее извиняюсь за его корявую постановку. В нашей команде программистов, я пишу на PL/SQL, и к дельфям редко прикладываюсь. Вопрос в следующем: Есть главное приложение, которое сканирует на наличие DLL"ок директорию и подключает их. Каким образом получить доступ объекту DLL"ки к объекту главного приложения, а точнее к его свойствам.


 
DrPass ©   (2004-06-20 12:07) [1]

Передать указатель на этот объект в DLL. Не забыть про модуль sharemem.


 
jack128 ©   (2004-06-20 12:30) [2]


> Передать указатель на этот объект в DLL. Не забыть про модуль
> sharemem.

это не есть гуд по двум причинам
а) дубляж кода в dll и в основном приложении
б) накладываются некоторые ограничения на объект (не возможность использования операторов is/as и тд)

есть два возможных варианта решения проблемы
1) вынести объект в пакет и соответственно компилировать dll и exe с рантайм пакетами
2) объявить interface, описывающий интерфейс (уж извени за карявость фразы :-)) объекта и передовать в длл этот интерфейс.

Хотя если объект  маленький и не сложный, то можно и способом DrPass"a воспользоваться..


 
default ©   (2004-06-20 13:40) [3]

jack128 ©   (20.06.04 12:30) [2]
пояcни пункт a) (


 
jack128 ©   (2004-06-20 13:54) [4]


> jack128 ©   (20.06.04 12:30) [2]
> пояcни пункт a) (

unit uMyTestClass

interface

type
 TTest = class(TObject)
 public
   procedure SameProcedure();
   ...
 end;

implementation

procedure TTest.SameProcedure;
begin
...
end  

для того чтобы использовать класс TTest в Dll - нужно подключить модуль uTestClass, вот и получается, что у нас код этого модуля Магнезия и в EXE(в котором мы, собственно и реализуем функциональность класса) и в DLL(тут нам посути нужен только интерфейс класса).


 
jack128 ©   (2004-06-20 13:55) [5]


> вот и получается, что у нас код этого модуля будет скомпилирован и
> в EXE
буффер обмена засорился :-)


 
default ©   (2004-06-20 14:01) [6]

jack128 ©   (20.06.04 13:54) [4]
ааа...а не в курсе на счёт дублирования Application в EXE и в DLL?зачем это понадобилось...


 
jack128 ©   (2004-06-20 14:31) [7]


> а не в курсе на счёт дублирования Application в EXE и в
> DLL?

Нет, не в курсе. Сам я не часто c DLL дело имею, а если и имею, то без VCL.


 
evvcom ©   (2004-06-20 19:32) [8]


> к объекту главного приложения, а точнее к его свойствам

А зачем собственно? С объектами exe пусть сам exe и работает. То же касается и dll. А уж если что из самой dll надо поменять, так или посылать сообщения, или через интерфейсы (COM, OLE, ActiveX). Меньше проблем будет.



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

Текущий архив: 2004.07.04;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.043 c
14-1087279718
Layner
2004-06-15 10:08
2004.07.04
Народ, что такое Microsoft КЕШЕ? (Так сказали, сам не понял)


1-1087852688
Ivanov
2004-06-22 01:18
2004.07.04
Полупрозрачная закраска


4-1085547587
Bar
2004-05-26 08:59
2004.07.04
Как отловить обновление рабочего стола?


3-1086598871
Stas
2004-06-07 13:01
2004.07.04
Как добраться до DBGrid.FPressedCell.X


14-1087074079
Федор Б.
2004-06-13 01:01
2004.07.04
ОС с СД