Delphi verwendet DLL, um ein einfaches Beispiel-Plug-in zu implementieren
Dies ist der Code der DLL
Implementierungscode:
Bibliothek MyDll; used SysUtils, Dialogs, Classes; procedure ShowInfo(info:PChar);stdcall; end; exportiert ShowInfo, GetCaption; {$R *.res} begin end.
Dies ist der Code, der das Formular aufruft
In diesem Beispiel wird nur eine DLL verwendet. Wenn also mehrere DLLs vorhanden sind, müssen Sie das Verzeichnis durchlaufen, in dem sich die DLL befindet, und die DLLs nacheinander laden.
Unit Main; Schnittstelle verwendet Windows, Nachrichten, Klassen, Grafiken, Steuerelemente, Formulare, StdCtrls, Menüs, ExtCtrls; Typ TShowInfo = procedure (info:PChar);stdcall; = class(TForm) Button1: TButton; Button2: TButton1: TMainMenu; Image1: TImage; procedure Button2Click(Sender: TObject) FHandel: //DLL-Handle FProAddress: //Die Adresse von ShowInfo: TShowInfo; der DLL-Prozedur LoadPlusIn; //Plugin-Prozedur (DLL) laden ItemClick(Sender: TObject); //Benutzerdefiniertes Menüklickereignis public { Öffentliche Deklarationen } end; var Form1; Implementierung {$R *.dfm} procedure TForm1.Button2Click(Sender: TObjectIn; begin @showinfo := FProAddress); ; // Adresse abrufen, wenn @showinfo <> nil dann showinfo(PWideChar(TMenuItem(Sender)); //ShowInfo in DLL ausführen end; var getcaption: TMenuItem; begin FHandel('MyDll.dll'); Laden, wenn FHandel = 0, dann beginne ShowMessage('Laden fehlgeschlagen! '); Exit; end else begin @getcaption := GetProcAddress(FHandel,'GetCaption'); //GetCaption-Adresse in der DLL abrufen if @getcaption <> nil then begin item := TMenuItem.Create( Erstellen Sie ein Menüelement.Caption := getcaption; // Holen Sie sich die Beschriftung, das heißt, rufen Sie GetCaption in der DLL FProAddress auf := GetProcAddress(FHandel,'ShowInfo'); //Adresse von ShowInfo in der DLL abrufen item.OnClick := ItemClick; //Zuweisen des Klickereignisses zum Menüelement Hauptmenü Ende; Ende; Ende.
Wenn Sie Fragen haben, hinterlassen Sie bitte eine Nachricht oder gehen Sie zur Community dieser Website, um zu kommunizieren und zu diskutieren. Ich hoffe, dass es allen helfen kann.