![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Обращение к переменным,объявленным в форме, из 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 функцию для получения значения