Разработка приложений в системе Delphi. Шейкер Т.Д. - 168 стр.

UptoLike

Составители: 

begin
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.Run;
end.
unit fmDemo;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Edit4: TEdit;
Button1: TButton;
procedure Button1Click(Sender: TObject);
end;
var Form1: TForm1;
implementation
{$R *.DFM}
procedure drawchart(Handle:tHandle; a,b,c,d:integer); external
'mylib' index 1;
procedure TForm1.Button1Click(Sender: TObject);
var a,b,c,d:integer;
begin
a:=strtoint(edit1.text);
b:=strtoint(edit2.text);
c:=strtoint(edit3.text);
d:=strtoint(edit4.text);
drawchart(Handle,a,b,c,d);
end;
end.
ВОПРОСЫ ДЛЯ САМОКОНТРОЛЯ
1. Чем объясняется широкое использование DLL?
2. Какую структуру имеет DLL?
3. Что и как записывается в секции
exports?
4. Может ли имя процедуры в вызывающем приложении не совпадать с
именем процедуры в библиотеке?
5. По какому признаку компилятор определяет, что код процедуры
расположен вне приложения?
6. В чём принципиальное отличие динамического импорта от статического?
168
begin
  Application.Initialize;
  Application.CreateForm(TForm1, Form1);
  Application.Run;
end.

unit fmDemo;
interface
uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    Edit4: TEdit;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  end;
var   Form1: TForm1;

implementation
{$R *.DFM}
procedure drawchart(Handle:tHandle; a,b,c,d:integer); external
'mylib' index 1;
procedure TForm1.Button1Click(Sender: TObject);
var   a,b,c,d:integer;
begin
  a:=strtoint(edit1.text);
  b:=strtoint(edit2.text);
  c:=strtoint(edit3.text);
  d:=strtoint(edit4.text);
  drawchart(Handle,a,b,c,d);
end;
end.

                    ВОПРОСЫ ДЛЯ САМОКОНТРОЛЯ
1. Чем объясняется широкое использование DLL?
2. Какую структуру имеет DLL?
3. Что и как записывается в секции exports?
4. Может ли имя процедуры в вызывающем приложении не совпадать с
   именем процедуры в библиотеке?
5. По   какому   признаку   компилятор    определяет,   что   код   процедуры
   расположен вне приложения?
6. В чём принципиальное отличие динамического импорта от статического?

                                    168