2012-05-07 7 views
0

可能性の重複:
How to convert a dynamic dll to static lib?C++ - 永久にDLLファイルをインポートするには?

我々はDLLファイルを持っていると仮定します。 "dllfile.dll"という名前です。 私のC++プロジェクト(Dev-C++のコンソールアプリケーションは.exe)にインポートしたいので、DLLファイル自体に準拠しているので、.dllファイルをmy .exeと同じディレクトリに入れることなく公開することができますファイル。 提案がありますか?

答えて

1

これには静的ライブラリが必要ですが、一般的にDLLコンパイル済みコードを使用することはできません。

DLLのソースコードをお持ちの場合は、静的ライブラリとしてコンパイルしてリンクする必要があります。これにより、そのライブラリのDLLファイルに依存しなくなります。

+0

あなたは、ソースコードをお持ちでない場合、静的に好きではないと言っていますか? –

+0

http://www.binary-soft.com/dll2lib/dll2lib.htmのようなツールがあります。 – Tibor

+0

@Tibor:はい、エンドユーザーライセンス契約があります。 – SigTerm

0

私は.dllファイルをmy .exeファイルと同じディレクトリに含めずに公開できます。

一般に、あなたはそれを行うことはできません。

これを行うには、dllを逆コンパイルしてスタティックライブラリにする必要があります。これはフリーウェア、プロプライエタリ、GPL、LGPLプロジェクトのライセンスに違反します。静的にdllの内容とリンクすると、問題が発生する可能性があります(CRTミックスアップ)。

またはあなたは、静的ライブラリのライブラリのバージョンを取得しようとすることができますdllを表し、静的にリンクします。これは、プロプライエタリなプロジェクトでは不可能かもしれません(あなたがたくさんの費用を支払うつもりでない限り、売りたいと思っていない限り)、フリーウェアのプロジェクトは、GPL/LGPLのDLLに使用できません。現在はGPL/LGPLです。これはおそらくあなたが望むものではありません)。

関連する問題