Titik awal dari teknologi plug-in terutama untuk memungkinkan perangkat lunak memperluas fungsi secara fleksibel tanpa perlu mengkompilasi ulang dan menerbitkan program utama (program kerangka). Prinsipnya cukup sederhana. Fungsionalitas perangkat lunak ditentukan oleh program kerangka kerja dan plug-in. Ada antarmuka khusus antara program kerangka kerja dan plug-in, yang melaluinya mereka harus meneruskan data atau informasi kontrol untuk mengimplementasikan fungsi perangkat lunak. Oleh karena itu, selama suatu program (atau entitas fungsional lainnya) sesuai dengan antarmuka ini, maka disebut plug-in dari program kerangka kerja.
Entitas plug-in umumnya dibagi menjadi dua jenis. Yang pertama adalah program yang berisi logika, seperti perpustakaan dinamis, program Exe, dll.; Metode pertama banyak digunakan dalam perangkat lunak menggambar dan perangkat lunak pemutaran media, dan cocok untuk merealisasikan fungsi yang kompleks; metode terakhir banyak digunakan untuk merealisasikan fungsi Skin perangkat lunak dan modul fungsional lainnya yang tidak memerlukan perhitungan rumit (ada banyak permainan ). Level perangkat lunak juga diimplementasikan dengan cara ini, seperti Lianliankan dari Ada Software).
Artikel ini memberikan program framework dan contoh penggunaan untuk mengelola Dll dalam proses implementasi program framework plug-in Dll, sebagai dasar bagi pembaca untuk merancang program plug-in. Secara khusus, program kerangka kerja perlu menyelesaikan tiga fungsi: pemuatan plug-in, pemanggilan fungsi, dan penghapusan instalasi.
Faktanya, setiap program panel kontrol adalah plug-in untuk sistem operasi. Karena setiap file .cpl adalah Dll yang mengimplementasikan antarmuka tertentu. Hal yang sama berlaku untuk program layanan Windows, yang hanya memproses pesan Windows tertentu berdasarkan program aslinya.
Padahal, secara garis besar, setiap program yang berjalan di sistem operasi merupakan “plug-in” dari perangkat lunak sistem operasi.
Sebenarnya di Delphi sudah ada framework manajemen plug-in yaitu bpl. Perluasan fungsi plug-in juga dapat dicapai dengan mudah menggunakan paket komponen bpl. Namun, metode ini memiliki kelemahan: tidak mendukung pengembangan plug-in dengan alat pengembangan lainnya (seperti vb, vc++).
)
Dua kelas dasar didefinisikan dalam unit untDllManager:
TDll: Kelas induk dari semua kelas Dll, menyediakan operasi terkait bongkar muat;
TDllManager: Kelas kontainer kelas Dll. Mendukung penghapusan entitas Dll dengan menghapus elemen.
Berikut ini adalah diagram kelasnya: