|
#1
|
||||
|
||||
Работа с DLL
Так, хочу в свою прогу подключить планигы (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 [ Ты не сможешь никому помочь до тех пор, пока не поможешь себе ] Delphi 7 user
ICQ: 570224849 / JID: x-rem@jabber.ru|no / Skype: ukc-rem / VK: ukc_rem.vk.com (ID: 27703738) |
#2
|
|||
|
|||
В инете дофига статей смотри там.
|
#3
|
||||
|
||||
Умнейший конечно ответ, но я всё ровно не понимаю)
[ Ты не сможешь никому помочь до тех пор, пока не поможешь себе ] Delphi 7 user
ICQ: 570224849 / JID: x-rem@jabber.ru|no / Skype: ukc-rem / VK: ukc_rem.vk.com (ID: 27703738) |
#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
|
||||
|
||||
Цитата:
А вызвать как ? [ Ты не сможешь никому помочь до тех пор, пока не поможешь себе ] Delphi 7 user
ICQ: 570224849 / JID: x-rem@jabber.ru|no / Skype: ukc-rem / VK: ukc_rem.vk.com (ID: 27703738) |
#6
|
|||
|
|||
Если работаешь с плагинами, то во всех плагинах должна присутствовать
функция с одним именем (например PluginExec). |
#7
|
||||
|
||||
Так как вызвать то ? )
[ Ты не сможешь никому помочь до тех пор, пока не поможешь себе ] Delphi 7 user
ICQ: 570224849 / JID: x-rem@jabber.ru|no / Skype: ukc-rem / VK: ukc_rem.vk.com (ID: 27703738) |
#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; |
#9
|
||||
|
||||
А где описать TForm1.PluginExecute(FileName:string); ?
[ Ты не сможешь никому помочь до тех пор, пока не поможешь себе ] Delphi 7 user
ICQ: 570224849 / JID: x-rem@jabber.ru|no / Skype: ukc-rem / VK: ukc_rem.vk.com (ID: 27703738) |
#10
|
|||
|
|||
В главной программе!
|
#11
|
||||
|
||||
А где именно , в private в public в type или в impletentation
[ Ты не сможешь никому помочь до тех пор, пока не поможешь себе ] Delphi 7 user
ICQ: 570224849 / JID: x-rem@jabber.ru|no / Skype: ukc-rem / VK: ukc_rem.vk.com (ID: 27703738) |
#12
|
|||
|
|||
да где хош.
|
#13
|
||||
|
||||
Щяс я проверю, из форума не уходи ) Я в Личку напишу )
[ Ты не сможешь никому помочь до тех пор, пока не поможешь себе ] Delphi 7 user
ICQ: 570224849 / JID: x-rem@jabber.ru|no / Skype: ukc-rem / VK: ukc_rem.vk.com (ID: 27703738) |