Оценить:
 Рейтинг: 0

Иcпользование API на Delphi 7

Год написания книги
2012
<< 1 ... 3 4 5 6 7 8 9 10 11 ... 15 >>
На страницу:
7 из 15
Настройки чтения
Размер шрифта
Высота строк
Поля

procedure TForm2.ServerSocket1Listen(Sender: TObject;

Socket: TCustomWinSocket);

{ Ожидание подключения клиентов }

begin

ListBox1.Items.Text:='Server is active…';

end;

ЛЕКЦИЯ №6

1. РАЗРАБОТКА DLL – БИБЛИОТЕК

Язык программирования Delphi является языком визуального объектно-ориентированного программирования (ООП). В современных программах, совместно с ООП, очень часто используется и модульный принцип создания программ. Наибольшее развитие данная технология получила в форме разработки динамически загружаемых DLL-библиотек. DLL-библиотека представляет собой отдельный файл с расширением «DLL», в котором находятся какие-либо процедуры и функции. Они становятся доступными при подключении к программе DLL-файла.

При подключении DLL-библиотеки к программе она загружается в оперативную память компьютера и находится там до завершения программы. Если запускается несколько программ, и всем им нужна одна и таже DLL-библиотека, то она загрузится в память в одном экземпляре, а выгрузится из памяти при закрытии последней (использующей библиотеку) программы.

При одновременной работе нескольких программ с одной и той же DLL-библиотекой обеспечивается независимость переменных DLL-модуля для каждой прикладной программы. Таким образом получается, что процедуры и функции загружаются в одном экземпляре, а переменные DLL копируются для каждой прикладной программы отдельно.

Прикладная программа на Delphi может подключать DLL-библиотеку двумя способами: динамическим и статическим. При статическом способе DLL-библиотека автоматически подключается при запуске программы и автоматически деактивируется при ее завершении. Если указанный DLL-файл будет не найден, то возникнет ошибка выполнения программы. При динамическом способе DLL-библиотека подключается и отключается в нужное программисту время, при этом обеспечивается контроль над ошибочными ситуациями (например, если DLL-файл не найден).

Для создания файла DLL в Delphi необходимо выбрать пункт меню: «File -> New Item -> DLL wizard». Исходный код DLL-библиотеки нужно набрать в открывшимся окне и сохранить как файл с расширением «DPR». Никакие формы и файлы с расширение «PAS» здесь не используются.

Для одновременной отладки и создания программы и DLL-библиотеки лучше всего запустить две копии «Delphi» и в них работать отдельно.

1.1. Пример простейшей библиотеки DLL

library demo_dll;

function sc(x: real): real export; stdcall; { Функция расчета }

begin

xsin:=sin(x)+ cos(x);

end;

exports sc; { Экспорт процедур и функций для внешних программ }

begin { Секция инициализации библиотеки DLL }

end.

end.

1.2. Пример использования библиотеки DLL

unit Demo_dll;



var Form1: TForm1;

function sc(x: real): real; stdcall; external 'demo_dll.dll'; { Подключение функции из DLL-библиотеки }

implementation

procedure TForm1.Button1Click(Sender: TObject);

begin

showmessage(floattostr(sc(5)));

end;

1.3. Пример расширенной библиотеки DLL

library repa;

uses SysUtils, Classes, Windows, Registry, StdCtrls;

procedure Save1(edit1_text: pchar; mm1: pchar; scrollbar1_position: integer); export; stdcall;

// Сохранение данных в реестр

var nfile, s: string; t: tregistry; i,k: integer; m1: tstrings;

begin

m1:=TStringList.Create; m1.Text:=mm1;

t:=tRegistry.Create;

t.RootKey:=HKEY_CURRENT_USER;

t.OpenKey('\Software\is-302\tsn-12', true);

t.writestring('', 'repa.dll');

t.WriteString('Edit1_text', edit1_text);

k:=m1.count;

t.WriteInteger('memo1_count', k);

for i:=0 to m1.Count-1 do begin
<< 1 ... 3 4 5 6 7 8 9 10 11 ... 15 >>
На страницу:
7 из 15