質問

Windows、Linux、OS / Xなどの最新のオペレーティングシステムで実行されている他のプログラムから動的にリンクされるライブラリを作成したい(つまり、 .dll または .so モジュール)。

その場合に最も適切な言語は何ですか?プレーンCを使用する必要がありますか?または、C ++も大丈夫ですか?

役に立ちましたか?

解決

実装にはCまたはC ++のいずれかを使用できますが、インターフェイスを純粋なCで定義することをお勧めします。統合がはるかに簡単になります。

他のヒント

バイナリ形式で配布されるC ++ライブラリを作成することの難しさは、通常、顧客(ライブラリのユーザー)がライブラリを作成したのと同じC ++コンパイラを使用するように制約されていることです。これは、最新の状態を維持したいがそうでない場合、または最新の状態を維持したいがあなたがそうでない場合に問題になる可能性があります。ソースを扱う場合、顧客が使用するすべてのコンパイラーでC ++を使用できるほど移植性が高い限り、これは問題ではありません。

コードがCから使用される可能性がある場合、おそらくCインターフェイスにコードを作成します。代わりに、ネイティブC ++インターフェイスとCインターフェイスの2つのインターフェイスを提供します。しかし、それは単なるCインターフェース以上の作業です。一方、C ++インターフェース(おそらくSTLイテレーターなどを使用)の利点があり、それが決定を左右する可能性があります。

また、Cが最小公分母であると言います。これが呼び出し側アプリケーションとよりよく統合される場合、コアライブラリにC ++ラッパーを書き込むオプションが常にあります。

Cは最も予測可能な移植性があると思いますが、C ++は実行可能です。

最小公約数の要因を考慮し、ライブラリの消費者に最適な決定を下してください。 extern cのコンストラクトはおそらく一部の人々を混乱させるため、ライブラリを遠くまで移動させて、最も幅広い視聴者に届けたいと考えています。インターフェイスを完全に純粋にしますc。暗いコーナー(STLなど)の一部を避ければ、C ++は問題ありません。 Cは最もポータブルなバーです。使用可能なすべてのプラットフォーム用のライブラリを作成するのは簡単なことなので、必ずこちらいくつかのヒント。 autoconfなどの使用を検討することもできます。

scroll top