Форум: "Основная";
Текущий архив: 2006.11.12;
Скачать: [xml.tar.bz2];
ВнизОбращение к переменным,объявленным в форме, из dll Найти похожие ветки
← →
Msl (2006-09-29 13:24) [0]Уважаемые мастера, подскажите возможный вариант решения, если таковой имеется. В основной проге есть такое описание
TMainF = class(TForm)
.
.
.
private
.
.
public
{ Public declarations }
IsCounts : boolean;
end;
Можно ли каким-то образом получить доступ к переменной IsCounts из dll(PlugIn) ?
← →
Palladin © (2006-09-29 13:34) [1]угу, передав CallBack функцию для получения значения
← →
Игорь Шевченко © (2006-09-29 13:35) [2]
> Можно ли каким-то образом получить доступ к переменной IsCounts
> из dll(PlugIn) ?
Можно, если DLL скомпилирована с описанием класса TMainF и ей передан указатель на экземпляр этого класса.
← →
zamtmn © (2006-09-29 14:03) [3]>>Можно, если DLL скомпилирована с описанием класса TMainF и ей
>>передан указатель на экземпляр этого класса.
зачем? достаточно передать в длл указатель на IsCounts
← →
Игорь Шевченко © (2006-09-29 14:15) [4]zamtmn © (29.09.06 14:03) [3]
Вопрос почитать не получается ?
← →
zamtmn © (2006-09-29 14:23) [5]2 Игорь Шевченко ©
>>Можно ли каким-то образом получить доступ к переменной IsCounts из dll(PlugIn)?
человек хочет получить доступ к IsCounts:boolean, а не к форме, если в dll пихать все описания типов используемые в программе, то PlugIn`ы перестанут быть маленькими
← →
Игорь Шевченко © (2006-09-29 14:29) [6]Удалено модератором
← →
zamtmn © (2006-09-29 14:43) [7]Удалено модератором
← →
oxffff © (2006-09-29 14:45) [8]Boolean(Pointer(DWORD(self)+TMainF.InstanceSize-sizeof(boolean))^)
:)
← →
Игорь Шевченко © (2006-09-29 14:51) [9]zamtmn © (29.09.06 14:43) [7]
Я отвечал на вопрос "Обращение к переменным,объявленным в форме, из dll "
Дальнейшую дискуссию с тобой считаю нецелесообразной.
← →
oxffff © (2006-09-29 14:58) [10]Игорь Шевченко © (29.09.06 14:51) [9]
Постойте, постойте.
А как поступит Игорь Шевченко, если TMainF изменится.
Игорь Шевченко будет что делать? перекомпилировать PlugIn ?
Игорь Шевченко смотрите внимательно, что написано PlugIn.
Дальнейшую дискуссию с Игорь Шевченко считаю нецелесообразной
← →
zamtmn © (2006-09-29 15:02) [11]Удалено модератором
← →
Elen © (2006-09-29 15:10) [12]Я не пойму чего Вы все так завелись? как по вашему это не решение :
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)
← →
Palladin © (2006-09-29 15:13) [13]
> oxffff © (29.09.06 14:58) [10]
Нет, я думаю, скорее всего Игорь Шевченко, будет работать через интерфейсы. :)
← →
zamtmn © (2006-09-29 15:18) [14]>>function bool(b:boolean):boolean; external "project2.dll";
это не для плагинов. и таким образом dll доступа к mbb не имеет
← →
Elen © (2006-09-29 15:26) [15]А ну да... Оффтоп... тогда поинтерами вполне можно
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2006.11.12;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.039 c