1

スニペットとして表現するには大きすぎたり複雑すぎたりする可能性があるため、あちこちで書き直さなければならない小さなことがたくさんありますが、現実的には、それからスタンドアロンの DLL を作成することは意味がありません。数十行または数百行のコードしか話していない可能性があります。

たとえば、ユーザーがパスワードを入力して {Enter} で閉じるテキスト ボックスのみを含む小さなフォームです。

または、オブジェクトがSerializable.

リストは続きます。私は何年にもわたって多くの小さな断片を蓄積してきましたが、きちんと整理されていません.

C++ プロジェクトでは、これらのコードを含む lib ファイルを作成し、それをコンパイラ設定に追加して、今後作成する C++ プロジェクトにこの lib が含まれるようにすることができます。私はATLとBoostでこれを行いました。

C# プロジェクトでこれを行う方法がわかりません。出来ますか?

編集:

アセンブリを作成する場合は、それを DLL にコンパイルし、その DLL をメインの実行可能ファイルと共に配布する必要があります。DLL が小さいか、かなり大きいかはわかりません。しかし、私のプロジェクトでは、その DLL でいくつかの小さな関数を使用するだけでよい場合があります。C++ では、ライブラリを使用するときに使用する関数のみが静的にリンクされますが、DLL を使用してソフトウェアを配布すると、すべてを配布する必要があります。

ユーザーが別のライブラリがあることに気付かないように、DLL をメインの実行可能ファイルとマージできることはわかっていますが、DLL 全体は実行可能ファイルと一緒にパッケージ化されています。

独自の数学、統計、ファイル IO、画像操作、シリアル化、ユーザー IO などを含む DLL を作成するとします。派手なことは何もありません。私が頻繁に行っている一般的なことです。DLL は、たとえば 4MB かもしれません。

ここで、DLL のごく一部を使用するプログラムを作成したいと考えています。必要なコードを単純にコピーして貼り付けると、EXE は、たとえば 700kB になります。

必要なコードをコピーして貼り付けるか、700kB の EXE と一緒に 4MB の DLL を配布する必要があるということですか?

4

3 に答える 3

3

アセンブリを使用する以外に、私が知っている唯一の方法は、プロジェクト内に問題のソース コードへのリンクを作成することです。Visual Studio でのプロセスは次のとおりです。

プロジェクト → 追加 → 既存のファイル → リンクとして追加 (小さな下矢印:)

于 2012-07-05T03:51:20.940 に答える
1

しばしば要求されますが、ソース コード レベルでは不可能です (Google c# #include 相当)。C# が提供する唯一の合理的な代替手段は、共通コードを DLL としてコンパイルし、それへの参照を追加することです。

別のプロジェクトからプロジェクトにファイルを追加することはできますが、そのファイルはコピーを取得するため、更新を維持しないことに注意してください。これを使用して「手動で」同じ効果を達成しました。共通ファイルが更新されると、それを「参照」するプロジェクトから除外し、再度追加して新しいコピーを取得しました。

更新以下にコメントしたように、リンクとして追加できます-なんてクールでしょう! なぜ誰も私に言わなかったのですか。

于 2012-07-05T03:37:26.983 に答える
-1

インクルードパス全体に共通ディレクトリを追加してから、

#include <somefile.cpp>

私たちのcppファイルに直接。ソースがそのまま含まれます。

于 2012-07-05T03:44:43.333 に答える