library TwoDLLProject;
uses
SysUtils,Classes;
function Summ(X,Y:Integer):Integer; StdCall;
begin
Result:=X+Y;
end;
exports Summ;
{$R *.res}
begin
end.
*******************************************************
unit UnitDin;
interface
uses
Windows,Messages,SysUtils,Variants,Classes,
Graphics,Controls,Forms,Dialogs,StdCtrls;
type TAddIntegers=function(p1,p2:integer):integer; stdcall; {тип функции}
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
Summ: TAddIntegers; {задание типа функции}
{Private declarations}
public
{Public declarations}
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
h:integer;
Handle:LongWord;
begin
{загрузка библиотеки}
Handle:=LoadLibrary('TwoDLLProject.dll');
if (Handle=0) then
begin
ShowMessage('Библ.TwoDLLProject.dll не найдена');
Halt;
end;
{получение указателя на функцию}
@Summ:=GetProcAddress(Handle,'Summ');
h:=Summ(12,20); {вызов функции}
ShowMessage(IntToStr(h)); {вывод рез-та}
FreeLibrary(Handle); {выгрузка библиотеки}
end;
end.