Linux での動的共有 C クラス ライブラリの作成と使用
共有クラス ライブラリの作成
共有 C クラス ライブラリを作成するには、次の手順に従います。これらの手順:
- ヘッダー ファイル .h を定義します。クラスとそのメンバー関数を宣言します。動的リンクを有効にするには、必ず仮想メンバー関数を使用してください。
- ヘッダー ファイルを含む別のソース ファイル .cc にクラスを実装します。
- オブジェクト作成用の外部 C 関数を定義します (create_object)
- #include を使用してヘッダー ファイルを組み込み、名前空間 std を使用します。標準の名前空間を使用します。
- Linux の場合は g -fPIC -shared、Mac OS X の場合は g -dynamiclib - flat_namespace を使用してライブラリをコンパイルし、共有オブジェクト ファイル (.so) を生成します。
共有クラス ライブラリの使用
別個のクラス ライブラリで共有クラス ライブラリを使用するには実行可能ファイル:
- 必要なヘッダー ファイルをインクルードします。
- dlopen を使用して共有ライブラリをロードします。
- dlsym を使用して create_object および destroy_object の関数ポインターを取得します。
- 次を使用してクラスのインスタンスを作成しますcreate_object.
- インスタンスのメンバー関数を呼び出します。
- destroy_object を使用してインスタンスを破棄します。
- dlclose を使用して共有ライブラリを閉じます。
追加プラグイン システムのヒント
プラグイン システムの場合は、ベースからクラスを派生させますクラスを作成し、必要な関数をすべて仮想化します。プラグイン作成者は、仮想をオーバーライドして、create_object 関数と destroy_object 関数を実装できます。こうすることで、メイン アプリケーションは変更されません。
以上がLinux 上で動的共有 C クラス ライブラリを作成して使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。