ライブラリにパッケージ化された C++

1. メリット

1. すべてのエンジニアは、デバイス ドライバーの移植または作成にほとんどお金をかけません。

2. ユーザー数が増加するにつれて、テストと安定化が行われ、当然の公開コードになりました。

3. ライブラリの外部インターフェイス (関数名とパラメータ宣言) は変更されませんが、一般的に使用されるすべてのデバイスがライブラリベースである場合、別の利点がもたらされ、アプリケーション層の移植、作成、変更、保守にかかる時間も短縮されます。大幅な削減

4. ライブラリは企業のコアコードのセキュリティを意味しており、ライブラリコードはコアエンジニアのみが管理しており、アプリケーション層のプログラムが紛失しても問題ありません。

5. 初心者は、これらのライブラリ ベースのプロジェクトをより早く始めることができます。第一に、ライブラリのヘルプ ドキュメントに手順が記載されています。第二に、基礎的な詳細を気にする必要がなく、気にする必要がなく、アプリケーション開発に集中できます。

6. 二次開発を顧客に提供する ハードウェアおよび周辺機器ドライバー ライブラリを二次開発のために顧客に引き渡すことができます。

2. 注意すべき点

1. 顧客に提供されるのは .h ファイルと .lib ファイルのみです
2. すべての .h ファイルには定義がありません。.lib ファイルのコンパイル条件は単なるジョークです 3.
すべての .h ファイルには extern 変数がありませんファイルがある場合、これは、システムがそのようなデバイスを 1 つだけ作成できることを意味します。たとえば、ブザー ドライバーに extern 変数がある場合、システム全体で 1 つのブザーのみが許可されることを意味します
keil の hlp ドキュメント形式を参照してください。
5. 参照用に .h ファイルのデモ プログラムを使用するだけです
6. 「ダイナミック リンク」ライブラリ コード つまり、未使用のインターフェイス関数コードはリンカによって最終的なバイナリ ファイルに含まれません
。それは、可能な限りプラットフォームに依存しないということであり、レジスタやその他のプラットフォーム関連のものには依存しません。

上記の目的を達成するために、ライブラリには通常、次のような特徴があります。

1. 構造体ポインター
2. 多数のコールバック関数ポインター
3. 豊富なインターフェイス
4. ライブラリ ソース コードの .c ファイルは、コード領域を最小限に抑えるために、インターフェイス関数に応じて複数の .c ファイルに分割されます。リンクする


Lingsheng Academy のプロジェクト クラスをお勧めします。個人的には先生の教え方が上手だったと思います。共有したいと思います:
Lingsheng Platinum Learning Card (インフラストラクチャ/高性能ストレージ/golang クラウド ネイティブ/オーディオとビデオ/Linux カーネルを含む)
https://xxetb.xet .tech/s/VsFMs

おすすめ

転載: blog.csdn.net/qq_40135848/article/details/133577608