logo search
Программирование в среде Delphy / Программирование в среде Delphi

28.3. Пример написания dll

Рассмотрим пример практического использования создаваемой DLL библиотеки для проверки регистрационного номера любой программы при ее инсталяции с помощью поставляемой вместе с Delphi программы Install Shield Express. В разделе Dialogs выберем страничку Customer Information и в ней зададим следующие параметры:

Show Serial Number Yes

Serial Number Template ????-????

Serial Number Validation DLL d:\my\MyLib.DLL

Validate Function ValNum

Success Return Value 24

Retry Limit 3

В данном случае серийный номер устанавливаемой программы будет состоять из двух частей по 4 произвольных символа в каждой части. Проверка номера будет проводиться программой ValNum из библиотеки MyLib. При правильно введенном регистрационном номере эта функция должна возвращать значение 24. Допускается не больше 3 попыток введения правильного номера.

Для решения этой задачи можно написать следующую DLL:

Library MyLib;

uses

SysUtils, Classes,

{$F+}

// При вызове функции Val используется стандартное для Windows

// соглашение о передаче параметров – stdcall

Function VAL(h:word;ps1,ps2,ps3,ps4:Pchar):longint; stdcall;

const sn=’ABCD1234’; // Правильное значение серийного номера

var s:string[20];

Begin

s:=strpas(ps3); // Переводим третий параметр в обычную строку

if s:=sn then val:=24 else val:=-1; // Проверяем серийный номер

end;

Exports

VAL name ’ValNum’; // Внешнее имя функции – ValNum

begin

end.