プラグイン技術の原点は、主に本体プログラム(フレームワークプログラム)を再コンパイルして公開することなく、ソフトウェアが柔軟に機能拡張できるようにすることです。その原理は非常に単純です。ソフトウェアの機能は、フレームワーク プログラムとプラグインによって決まります。フレームワーク プログラムとプラグインの間には特定のインターフェイスがあり、ソフトウェア機能を実装するためにデータや制御情報を渡す必要があります。したがって、プログラム(または他の機能エンティティ)がこのインターフェイスに準拠している限り、それはフレームワーク プログラムのプラグインと呼ばれます。
プラグイン エンティティは、一般に 2 つのタイプに分類されます。1 つはダイナミック ライブラリ、Exe プログラムなどのロジックを含むプログラム、もう 1 つは設定情報のセットです。前者は描画ソフトやメディア再生ソフトでよく使われ、複雑な機能を実現するのに適しており、後者は複雑な計算を必要としないソフトウェアのスキン機能やその他の機能モジュール(ゲームが多い)を実現する場合によく使われます。 Ada Software の Lianliankan など、ソフトウェア レベルもこの方法で実装されます。
この記事では、読者がプラグイン プログラムを設計するための基礎として、Dll プラグイン フレームワーク プログラムの実装プロセスで Dll を管理するためのフレームワーク プログラムと使用例を示します。具体的には、フレームワーク プログラムは、プラグインのロード、関数の呼び出し、アンインストールの 3 つの機能を完了する必要があります。
実際、すべてのコントロール パネル プログラムはオペレーティング システムのプラグインです。各 .cpl ファイルは特定のインターフェイスを実装する DLL であるためです。同じことが Windows サービス プログラムにも当てはまり、元のプログラムに基づいて特定の Windows メッセージのみを処理します。
実際、大まかに言えば、オペレーティング システム上で実行されるすべてのプログラムは、オペレーティング システム ソフトウェアの「プラグイン」です。
実際、Delphi には、bpl というプラグイン管理フレームワークがすでに存在します。 bplコンポーネントパッケージを利用することで、プラグインによる機能拡張も簡単に実現できます。ただし、この方法には欠点があります。他の開発ツール (vb、vc++ など) を使用したプラグイン開発はサポートされていません。
)
untDllManager ユニットには 2 つの基本クラスが定義されています。
TDll: すべての DLL クラスの親クラスであり、ロードおよびアンロード関連の操作を提供します。
TDllManager:Dllクラスのコンテナクラス。要素を削除することによる Dll エンティティのアンインストールをサポートします。
以下はクラス図です。