จุดเริ่มต้นของเทคโนโลยีปลั๊กอินคือการทำให้ซอฟต์แวร์สามารถขยายฟังก์ชันได้อย่างยืดหยุ่นโดยไม่จำเป็นต้องคอมไพล์ใหม่และเผยแพร่โปรแกรมหลัก (โปรแกรมกรอบงาน) หลักการของมันค่อนข้างง่าย ฟังก์ชันการทำงานของซอฟต์แวร์ถูกกำหนดโดยโปรแกรมเฟรมเวิร์กและปลั๊กอิน มีอินเทอร์เฟซเฉพาะระหว่างโปรแกรมเฟรมเวิร์กและปลั๊กอิน ซึ่งจะต้องส่งข้อมูลหรือควบคุมข้อมูลเพื่อใช้ฟังก์ชันซอฟต์แวร์ ดังนั้น ตราบใดที่โปรแกรม (หรือเอนทิตีการทำงานอื่นๆ) สอดคล้องกับอินเทอร์เฟซนี้ ก็จะเรียกว่าปลั๊กอินของโปรแกรมกรอบงาน
โดยทั่วไปเอนทิตีปลั๊กอินจะแบ่งออกเป็นสองประเภท ประเภทแรกคือโปรแกรมที่มีตรรกะ เช่น ไลบรารีแบบไดนามิก โปรแกรม exe ฯลฯ ส่วนอีกประเภทคือชุดของข้อมูลการกำหนดค่า วิธีแรกส่วนใหญ่จะใช้ในซอฟต์แวร์วาดภาพและซอฟต์แวร์เล่นสื่อ และเหมาะสำหรับการตระหนักถึงฟังก์ชันที่ซับซ้อน ส่วนวิธีหลังส่วนใหญ่จะใช้เพื่อรับรู้ฟังก์ชัน Skin ของซอฟต์แวร์และโมดูลการทำงานอื่น ๆ ที่ไม่ต้องการการคำนวณที่ซับซ้อน (มีหลายเกม) ) ระดับซอฟต์แวร์ก็ถูกนำมาใช้ในลักษณะนี้เช่นกัน เช่น Lianliankan ของ Ada Software
บทความนี้ให้ตัวอย่างโปรแกรมกรอบงานและการใช้งานสำหรับการจัดการ Dll ในกระบวนการนำโปรแกรมกรอบงานปลั๊กอิน Dll ไปใช้ เป็นพื้นฐานสำหรับผู้อ่านในการออกแบบโปรแกรมปลั๊กอิน โดยเฉพาะอย่างยิ่ง โปรแกรมเฟรมเวิร์กจำเป็นต้องทำหน้าที่สามอย่างให้เสร็จสมบูรณ์: การโหลดปลั๊กอิน การเรียกใช้ฟังก์ชัน และการถอนการติดตั้ง
ที่จริงแล้ว โปรแกรมแผงควบคุมทุกโปรแกรมนั้นเป็นปลั๊กอินสำหรับระบบปฏิบัติการ เนื่องจากไฟล์ .cpl แต่ละไฟล์เป็น Dll ที่ใช้อินเทอร์เฟซเฉพาะ เช่นเดียวกับเซอร์วิสโปรแกรม Windows ซึ่งจะประมวลผลเฉพาะข้อความ Windows ที่ระบุตามโปรแกรมต้นฉบับเท่านั้น
ในความเป็นจริง พูดอย่างกว้างๆ ทุกโปรแกรมที่ทำงานบนระบบปฏิบัติการนั้นเป็น "ปลั๊กอิน" ของซอฟต์แวร์ระบบปฏิบัติการ
ในความเป็นจริงใน Delphi มีกรอบการจัดการปลั๊กอินอยู่แล้วซึ่งก็คือ bpl การขยายฟังก์ชันปลั๊กอินยังทำได้อย่างง่ายดายโดยใช้แพ็คเกจส่วนประกอบ bpl อย่างไรก็ตาม วิธีการนี้มีข้อบกพร่อง: ไม่รองรับการพัฒนาปลั๊กอินด้วยเครื่องมือการพัฒนาอื่นๆ (เช่น vb, vc++)
-
มีการกำหนดคลาสพื้นฐานสองคลาสในหน่วย untDllManager:
TDll: คลาสพาเรนต์ของคลาส Dll ทั้งหมด ที่ให้การดำเนินการที่เกี่ยวข้องกับการโหลดและการขนถ่าย
TDllManager: คลาสคอนเทนเนอร์ของคลาส Dll รองรับการถอนการติดตั้งเอนทิตี Dll โดยการลบองค์ประกอบ
ต่อไปนี้เป็นแผนภาพคลาส: