Delphi использует DLL для реализации простого примера плагина.
Это код DLL
Код реализации:
библиотека MyDll; использует SysUtils, Dialogs, Classes; end; экспортирует ShowInfo, GetCaption {$R *.res} Begin End;
Это код, который вызывает форму
В этом примере используется только одна DLL, поэтому при наличии нескольких DLL вам необходимо просмотреть каталог, в котором находится DLL, и загрузить библиотеки DLL последовательно.
основной интерфейс модуля использует Windows, сообщения, SysUtils, варианты, классы, графику, элементы управления, формы, диалоги, StdCtrls, меню, ExtCtrls; тип TShowInfo = процедура (info:PChar);stdcall; функция: PChar;stdcall; = класс (TForm) Кнопка1: Кнопка2: ГлавноеМеню1: TMainMenu; Image1: TImage; процедура Button2Click(Sender: TObject); Private { Частные объявления } FHandel : THandle; //DLL-дескриптор FProAddress: Pointer; //Адрес ShowInfo: TShowInfo; //Устанавливаем динамическую загрузку. процедуры DLL LoadPlusIn; //Загрузка плагина (DLL) ItemClick(Sender: TObject //Событие щелчка по пользовательскому меню public); { Публичные объявления } end; var Form1: TForm1; реализация {$R *.dfm} процедура TForm1.Button2Click(Sender: TObject); end; ; //Получаем адрес, если @showinfo <> nil then showinfo(PWideChar(TMenuItem(Sender).Caption)); //Выполнить ShowInfo в DLL end; Загрузка, если FHandel = 0, начинается ShowMessage('Загрузка не удалась! '); End else Begin @getcaption := GetProcAddress(FHandel,'GetCaption'); //Получаем адрес GetCaption в DLL if @getcaption <> nil then start item := TMenuItem.Create(MainMenu1); Создайте пункт меню.Caption := getcaption; //Получите заголовок, то есть вызовите GetCaption в DLL FProAddress := GetProcAddress(FHandel,'ShowInfo'); //Получаем адрес ShowInfo в элементе DLL.OnClick := ItemClick; //Назначаем событие щелчка пункту меню MainMenu1.Items.Add(item); главное меню конец; конец;
Если у вас есть какие-либо вопросы, оставьте сообщение или зайдите в сообщество этого сайта, чтобы пообщаться и обсудить. Надеюсь, это поможет всем. Спасибо за вашу поддержку этого сайта!