Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

ЗагрузкаDLL [D7, XP]


Der Nechk@ssoff ©   (2006-03-23 10:34:00) 

Опять я.Помогите реализовать загрузку функции из длл при нажатии кнопки!Спасибо!

procedure TForm1.N2Click(Sender: TObject);
begin
вот здесь должна быти функция из длл
if OpenpictureDialog1.Execute then
Memo1.lines.LoadFromFile(OpenpictureDialog1.FileName);
progressbar1.Position:=100;
end;


balepa   (2006-03-23 11:10:00) [1]

Чего непонятно то ?
F1 + LoadLibrary or dynamically loadable libraries
1. динамически
2. Статически


Der Nechk@ssoff   (2006-03-23 11:04:00) [2]

эээ...чего-то непонятно...


balepa   (2006-03-23 10:50:00) [3]

Или вот так
unit Unit1;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, StdCtrls;

type
 TForm1 = class(TForm)
   Button1: TButton;
   procedure Button1Click(Sender: TObject);

 private
   { Private declarations }
 public
   { Public declarations }
 end;
function Summ(X,Y:Integer):Integer;StdCall;
var
 Form1: TForm1;

implementation
function Summ; external 'DLLName.dll' name 'Summ';

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
 r: Integer;
begin
 r:=Summ(10,34);
 Application.MessageBox(PChar(IntToStr(r)), 'Результат функции Summ');
end;

end.


balepa   (2006-03-23 10:47:00) [4]

TGetTime = procedure(var Time: TTimeRec);
 THandle = Integer;
var
 Time: TTimeRec;
 Handle: THandle;
 GetTime: TGetTime;
 ...
begin
 Handle := LoadLibrary('libraryname');
 if Handle <> 0 then
 begin
   @GetTime := GetProcAddress(Handle, 'GetTime');

   if @GetTime <> nil then
   begin
     GetTime(Time);
     with Time do
       WriteLn('The time is ', Hour, ':', Minute, ':', Second);
   end;
   FreeLibrary(Handle);
 end;
end;


Наверх

Титульная страница Поиск, карта сайта Написать письмо