Загрузка DLL и использование её функций

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Загрузка DLL и использование её функций

Сообщение Luxor » 10.06.2010 20:12:17

Есть библиотека, написанная на Lazarus. Вот её код:
Код: Выделить всё
library DLLtoTEST;

{$mode objfpc}{$H+}

uses
  Classes,
  { you can add units after this }
  dateutils, Forms, Interfaces, Unit1;

{ФУНКЦИИ ДЛЯ РАБОТЫ С ЧИСЛАМИ}
//целые числа
{
ФУНКЦИЯ ПРИНИМАЕТ ДВА ЦЕЛЫХ ЧИСЛА X И Y И ВОЗВРАЩАЕТ ИХ СУММУ
}
Function SummINTEGER(X,Y:Int64):Int64; StdCall; //'Primer1'
Begin
Result:=X+Y;
end;
//целые числа

//вещественные числа (десятичные)
{
ФУНКЦИЯ ПРИНИМАЕТ ДВА ВЕЩЕСТВЕННЫХ ЧИСЛА A И B И ВОЗВРАЩАЕТ ИХ СУММУ
}
Function SummREAL(A,B:Real):Real; StdCall; //'Primer2'
Begin
Result:=A+B;
end;
{ФУНКЦИИ ДЛЯ РАБОТЫ С ЧИСЛАМИ}

{Показ формы}
procedure XShowForm; stdcall;
begin
   Application.CreateForm(TForm1,Form1);
   Form1.ShowModal;
end;

function XGetForm:TFormClass;
begin
   Application.CreateForm(TForm1,Form1);
   Result:=TFormClass(Form1);
end;



{Показ формы}

Exports
SummINTEGER Index 10 name 'Primer1',
SummREAL Index 20 name 'Primer2',
XShowForm Index 30 name 'Primer3',
XGetForm Index 40 name 'Primer4';


{$IFDEF WINDOWS}{$R DLLtoTEST.rc}{$ENDIF}


begin

end.

В некоторой программе можно создавать скрипты на Object Pasca


Вот пример
Код: Выделить всё
var
MyForm: TForm;
btOK: TButton;



procedure FormOkClick(Sender: TButton);
begin
  MyForm.Tag := 1;
  MyForm.Close;
  {Загружаем библиотеку}

  ???????????????????????
  {Загружаем библиотеку}
end;

Begin
//Создаем кнопку
  MyForm := TForm.Create(nil);
  MyForm.Caption := 'Пример работы с динамически загружаемой библиотекой';
  MyForm.BorderStyle := bsSingle;
  MyForm.Width := 400;
  MyForm.Height := 250;
  MyForm.Position := poScreenCenter;
  //Добавим кнопку ОК

   //Добавим на форму кнопку
  btOk := TButton.Create(MyForm);
  btOk.Default := True;
  btOk.parent := MyForm;
  btOk.left := 230;
  btOk.top := 190;
  btOK.Width := 150;
  btOK.Height := 20;
  btOk.Caption := 'ОК (Загрузить файл DLL)';
  btOk.OnClick := @FormOkClick; //Свяжем с обработкой события FormOkClick

  //Отображение формы
  MyForm.ShowModal;
End.


Как мне загрузить библиотеку и использовать процедуры и функции в ней?
Luxor
новенький
 
Сообщения: 72
Зарегистрирован: 10.06.2010 19:30:43

Re: Загрузка DLL и использование её функций

Сообщение А.Н. » 11.06.2010 19:51:51

Руками.

Добавлено спустя 1 минуту 40 секунд:
Причём тут Lazarus?
google (1-е результаты):
http://ru.wikipedia.org/wiki/DLL
http://www.codenet.ru/progr/bcb/dll.php
А.Н.
постоялец
 
Сообщения: 230
Зарегистрирован: 13.03.2010 12:23:58


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 50

Рейтинг@Mail.ru