c++ - C++でのCライブラリ関数の実装

c++ c windows visual-studio

C++でCライブラリを実装することの欠点は何ですか?このライブラリは、Visual Studio 2008以降を使用して通常のPC用のWindowsアプリケーションを構築するために使用されます。仕様にCライブラリである必要があると記載されている理由は明らかではありません。彼らが望んでいるのは、純粋なC libではなく、プレーンなC-APIだと思います。しかし、上司は反対します。

とにかく、私がやりたいことは、すべての関数宣言をextern "C"し、実装ファイルでC++を使用することです。私はいくつかのテストを行いましたが、アプリケーションがCとしてコンパイルされていても(Visual Studioのプロジェクトオプションを変更することで)すべてうまくいきました。
答え
たとえば、STLコレクションをCプログラムに公開するためにこれを行う人を見てきました。ライブラリが正しいC / C++コンパイラ(たとえば、VSとgccのみ)を使用する環境でのみ使用されると確信している場合、これは技術的な観点から見るとかなり安全なことだと思います。 N
さて、あなたはここで何らかの外部の要件を演じているようですが、明らかにそれについてコメントすることはできません。要件のソースとのダブルチェックが悪いかもしれませんか?

更新:ああ、私はそれがあなたのライブラリが必要とするDLLに影響を与えることを言及しなければなりません。 C++ランタイムDLLと同様に、CRTに加えてDLLをロードする必要があります。
関連記事

c++ - すべての要素を削除するC++のtr1::array

c++ - C++メンバー関数の非メンバーラッパーを「自動的に」作成する

c++ - std::set_differenceセットキーとマップキーを比較することは可能ですか?

c++ - 配列をC++の関数に渡す

c++ - 述語ファンクタのパッケージ化

c++ - 空のBoostアキュムレータを使用する

c++ - VC++リソースコンパイラ(RC)オプション/ n…?

c++ - GL_DRAW_FRAMEBUFFERターゲットを使用すると、glBindFramebufferが「無効な操作」GLエラーを引き起こす

c++ - クラスのメンバーアクセス

c++ - ImageMagick C++ API出力16ビットグレースケールpng?