![]() |
|
|
|
|
#1
|
||||
|
||||
|
Так, хочу в свою прогу подключить планигы (dll файлы)
Есть вопросы : 1. Как создать dll и что в нём писать. 2. Что нужно написать в проге чтобы вызвать dll и выполнить его Предположим что нужно сделать простую прогу В dll'kе нужна функция FindFile(S: String):Boolen Функция проверят, if FileExist(S) then ShowMessage('ОК'); А в Form1 будет : Edit1 и Button1 Как нажимаем на Button1 то загрузается dll и идёт функция: FindFile(Form1.Edit1.Text); Помогите разобраца с dll'ками ) Ваш нуб X-rem ![]() |
|
#2
|
|||
|
|||
|
В инете дофига статей смотри там.
|
|
#3
|
||||
|
||||
|
Умнейший конечно ответ, но я всё ровно не понимаю)
|
|
#4
|
|||
|
|||
|
library Plugin;
uses SysUtils, Classes, dialogs,Forms, Unit1 in 'Unit1.pas' {Form1}; function FindFiles begin --- end; function PluginName:Pchar; begin PluginName := 'Ля - ля -ля'; end; procedure PluginExec; begin FindFiles; end; {$R *.res} exports PluginName, PluginExec,FindFiles; begin end. Что не понятного? |
|
#5
|
||||
|
||||
|
Цитата:
А вызвать как ? |
|
#6
|
|||
|
|||
|
Если работаешь с плагинами, то во всех плагинах должна присутствовать
функция с одним именем (например PluginExec). |
|
#7
|
||||
|
||||
|
Так как вызвать то ? )
|
|
#8
|
|||
|
|||
|
procedure TForm1.PluginExecute(FileName:string);
var PlugExec : procedure; handle : Thandle; begin handle := LoadLibrary(Pchar(FileName)); //Загружаем dll if handle <> 0 then begin @plugExec := GetProcAddress(handle,'PluginExec'); PlugExec; FreeLibrary(handle); end; end; |