Код:
library Project2;
uses
Windows,
SysUtils;
type
TCallbackProc = function: Integer; stdcall;
var
GetValue: TCallbackProc;
procedure Init(const ACallback: TCallbackProc); stdcall;
begin
GetValue := ACallback;
end;
function DoSomething: Integer; stdcall;
begin
Result := GetValue * 2;
end;
exports
DoSomething,
Init;
end.
Код:
unit Unit1;
...
type
TCallbackProc = function: Integer; stdcall;
procedure Init(const ACallback: TCallbackProc); stdcall; external 'Project2.dll';
function DoSomething: Integer; stdcall; external 'Project2.dll';
...
function Callback: Integer; stdcall;
begin
Result := Form1.Tag;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
Init(Callback);
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Tag := 5;
Caption := IntToStr(DoSomething); // выведет '10'
end;
вторник, 8 июля 2014 г.
Передача данных в DLL (Статическая загрузка DLL)
Подписаться на:
Комментарии к сообщению (Atom)
Комментариев нет:
Отправить комментарий