Синхронизация (изменение значений) Edit используя Dll

Как передать (изменить) данные в Edit (любой текст или сумму или отнять) используя .dll. Получаю ошибку при компиляции set.dll в виде: [dcc32 Error] Project1.dpr(8): E2003 Undeclared identifier: 'Edit1'

Проект set.dll:

library Project1;

uses
  System.SysUtils, System.Classes, Vcl.Dialogs;

  procedure EditPROC; export;
begin
 Edit1.Text:='OK';
end;

exports EditPROC;

{$R *.res}

begin
end.

А вот код самой программы VCL:

unit Unit1;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
// подключаем set.dll
  procedure EditPROC; external 'set.dll';

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
// Запускаем set.dll и передаем данные из EditPROC в программу
EditPROC;
end;

end.

Где допускаю ошибку ?


Ответы (1 шт):

Автор решения: Gleb

В общем вделал так:

Это код в DLL:
library Project1;

uses
  System.SysUtils,
  System.Classes;

{$R *.res}

Function PlusMin (a,b, Index: Integer): Integer;
begin
  if index =0 then
  result:= a + b;

  if index =1 then
  result:= a - b;
end;
  exports PlusMin;
end.

А это код самой программы VCL:

 unit Unit1;
    
    interface
    
    uses
      Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
      Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls;
    
    type
      TForm1 = class(TForm)
        Button1: TButton;
        Edit1: TEdit;
        Edit2: TEdit;
        ComboBox1: TComboBox;
        Edit3: TEdit;
        procedure Button1Click(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;
    
    var
      Form1: TForm1;
    
    implementation
    
    {$R *.dfm}
    
    function PlusMin (a,b, integer: Integer): Integer;
   // Подключаем Dll 
    External 'dll.dll';
    
    procedure TForm1.Button1Click(Sender: TObject);
    begin
// Вывод суммы или минуса (Edit1.Text -+ Edit2.Text) = в Edit3 через функцию (PlusMin) из DLL
    Edit3.Text:= inttostr(PlusMin (strtoint(Edit1.Text), strtoint(Edit2.Text), Combobox1.ItemIndex));
    
    end;
    
    end.

Вот таким способом нашел решение. Может кому и пригодится вариант. Для начинающих, как я.

→ Ссылка