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

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

Обращение к переменным,объявленным в форме, из dll [WinXP]


Msl ©   (2006-09-29 13:24:00) 

Уважаемые мастера, подскажите возможный вариант решения, если таковой имеется. В основной проге есть такое описание
TMainF = class(TForm)
.
.
.
 private
.
.
 public
   { Public declarations }
   IsCounts     : boolean;
  end;
Можно ли каким-то образом получить доступ к переменной IsCounts из dll(PlugIn) ?


Elen   (2006-09-29 15:26:00) [1]

А ну да... Оффтоп... тогда поинтерами вполне можно


zamtmn   (2006-09-29 15:18:00) [2]

>>function bool(b:boolean):boolean; external 'project2.dll';
это не для плагинов. и таким образом dll доступа к mbb не имеет


Palladin   (2006-09-29 15:13:00) [3]


> oxffff ©   (29.09.06 14:58) [10]

Нет, я думаю, скорее всего Игорь Шевченко, будет работать через интерфейсы. :)


Elen   (2006-09-29 15:10:00) [4]

Я не пойму чего Вы все так завелись? как по вашему это не решение :

library Project2;
uses
 SysUtils,
 Classes;

{$R *.res}

//********** FUNCTION **********
function bool(var b:boolean):boolean;
begin
 b:=not b;
end;
//********** END FUNCTION ******

 exports bool;
begin
end.


unit Unit1;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs;

type
 TForm1 = class(TForm)
   procedure FormCreate(Sender: TObject);
 private
   { Private declarations }
 public
 mbb:boolean;
   { Public declarations }
 end;
function bool(b:boolean):boolean; external 'project2.dll';
var
 Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
mbb:=true;
bool(mbb);
 caption:=BoolToStr(mbb);

end;

end.

Зачем обязательно передавать в DLL класс формы?
(Теперь я знаю как расшифровывается LMD-Tools, спасибо zamtmn)


zamtmn   (2006-09-29 15:02:00) [5]

Удалено модератором


oxffff   (2006-09-29 14:58:00) [6]

Игорь Шевченко ©   (29.09.06 14:51) [9]
Постойте, постойте.

А как поступит Игорь Шевченко, если TMainF изменится.

Игорь Шевченко будет что делать? перекомпилировать PlugIn ?

Игорь Шевченко смотрите внимательно, что написано PlugIn.

Дальнейшую дискуссию с Игорь Шевченко считаю нецелесообразной


Игорь Шевченко   (2006-09-29 14:51:00) [7]

zamtmn ©   (29.09.06 14:43) [7]

Я отвечал на вопрос "Обращение к переменным,объявленным в форме, из dll "

Дальнейшую дискуссию с тобой считаю нецелесообразной.


oxffff   (2006-09-29 14:45:00) [8]

Boolean(Pointer(DWORD(self)+TMainF.InstanceSize-sizeof(boolean))^)

:)


zamtmn   (2006-09-29 14:43:00) [9]

Удалено модератором


Игорь Шевченко   (2006-09-29 14:29:00) [10]

Удалено модератором


zamtmn   (2006-09-29 14:23:00) [11]

2 Игорь Шевченко ©
>>Можно ли каким-то образом получить доступ к переменной IsCounts из dll(PlugIn)?
человек хочет получить доступ к IsCounts:boolean, а не к форме, если в dll пихать все описания типов используемые в программе, то PlugIn`ы перестанут быть маленькими


Игорь Шевченко   (2006-09-29 14:15:00) [12]

zamtmn ©   (29.09.06 14:03) [3]

Вопрос почитать не получается ?


zamtmn   (2006-09-29 14:03:00) [13]

>>Можно, если DLL скомпилирована с описанием класса TMainF и ей
>>передан указатель на экземпляр этого класса.
зачем? достаточно передать в длл указатель на IsCounts


Игорь Шевченко   (2006-09-29 13:35:00) [14]


> Можно ли каким-то образом получить доступ к переменной IsCounts
> из dll(PlugIn) ?


Можно, если DLL скомпилирована с описанием класса TMainF и ей передан указатель на экземпляр этого класса.


Palladin   (2006-09-29 13:34:00) [15]

угу, передав CallBack функцию для получения значения


Наверх

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