2

チームに渡したい C++ ライブラリを開発しています。ライブラリには、多数のメソッドを持つクラスが 1 つだけあります。

そこで、クラス定義ファイル (X.cpp) とそれに対応するクラス宣言ファイル (Xh) を開発しました。

ここに私の質問があります -

  1. Visual Studio 2005 で、このライブラリを DLL としてビルドする最も簡単な方法は次のとおりです。 X.lib : これをチームに渡して、ライブラリ X.dll にリンクできるようにします。実行時にチームに渡すことができます

  2. DLL の代わりに、静的ライブラリの方法を使用する必要がありますか?? その場合、Visual Studio 2005 でこれを行うにはどうすればよいですか?これにより、チームに渡すことができる X.lib ファイルが得られますか?

説明や参考文献は大歓迎です。

どうもありがとうございました。

4

4 に答える 4

2

DLL をビルドする最も簡単な方法は、[新規] -> [プロジェクト] -> [Win32 コンソール アプリケーション] です。次に、ダイアログで DLL を選択し、[シンボルのエクスポート] を選択します。これにより、クラスをエクスポートする方法を示す .h および .cpp ファイルを使用して dll が合成されます。この .h/.cpp を取り除くことができますが、最初にクラスをインポートして、適切な #ifndef ステートメントを追加します。単一の小さなクラスである場合の DLL 対静的ライブラリに関しては、特に頻繁に変更されることはありません。単純で簡潔な静的ライブラリを使用したほうがよい場合があります。出荷する必要がある別の依存関係を追加しません。あなたの製品で。.cpp ファイル内のコードが頻繁に変更される場合 (関数の実装など)、DLL は便利です。新しい DLL を交換するだけでよいからです。

于 2009-07-10T05:07:26.327 に答える
1

あなたの説明から、既に Visual C++ プロジェクトがあるようです (間違っていたら訂正してください)。その場合、プロジェクトのプロパティに移動すると、[全般] の下に [構成の種類] が表示されます。必要に応じて、[静的ライブラリ] または [動的ライブラリ] に切り替えます。

「静的ライブラリ」を選択すると、すぐに使用できる .lib ファイルが取得されます。

「動的ライブラリ」を選択し、DLL から関数をエクスポートすると (たとえば、 でマークすることによって__declspec(dllexport))、エクスポート .lib が自動的に生成されます。

実行している内容の詳細を知らずに、どのオプションが望ましいかを判断するのは困難です。通常は静的ライブラリで十分であり、DLL (特に C++ シンボルをエクスポートするもの) を処理する際にはより多くのトラップがあるため、一般的にはデフォルトで静的ライブラリを使用することをお勧めします。

于 2009-07-10T05:05:54.800 に答える
1

ほとんどの場合、ライブラリの新しいバージョンを配布するときにチームがコードを再コンパイルする必要がないため、静的ライブラリよりも dll の方が適していると思います。

于 2009-07-10T10:03:36.650 に答える
0

私も時々これに苦労します.. C++ プロジェクトのプロパティ内でとらえどころのない設定がどこにあるかを見つけることができないため.. それで、私はブログ投稿として自分の正気のためにそれを書き留めることにしました.

HTH

于 2009-07-10T07:12:06.120 に答える