2011-09-15 11 views
1

ソース(gdal)からコンパイルしたDLLがあります。 1つのソースファイルを持つシンプルなC++ Win32コンソールプロジェクトがありますが、そのDLLとリンクしたいと思っています。現在、プロジェクトを実行しようとすると、正しくコンパイルされますが、DLLが見つからないというメッセージが表示されます。 DLLをDLLと同じディレクトリに移動すると、exeが実行されます。私の出力EXEにDLLを含めるようにする方法があります。そうすれば、あるファイルを別のシステムに移動して、exeでDLLを送信することなく実行することができます。VS2010 C++プロジェクトにDLLを追加する方法

これをVS2010で行うにはどうすればよいですか?

答えて

0

静的ライブラリ(.lib)として再コンパイルして静的にリンクした.dllの元のソースコードがないかぎり、動的にリンクされたライブラリを「インクルード」する方法はないと思います実行可能ファイル。

+1

あります! DLLを実行可能ファイルにリソースとして埋め込み、起動時にディスクに取り出し、動的にロードします。 *しないでください*。 –

+0

ダーティー!私はそれが好きです! – aardvarkk

0

パスまたはアプリケーションの現在のディレクトリにDLLが必要です。それがDLLでどのように動作するかです。

スタティックライブラリの場合、リンクするとライブラリコードがアプリケーションに埋め込まれます。 DLLを使用できない、または使用したくない場合は、DLLを静的ライブラリに変更することができます。

+0

サードパーティのツールのライセンス(この場合はgdal)を必ずお読みください。一部のライセンスは、静的リンクには親切に対応していません。 –

+0

これはMITスタイルなので、うまくいくはずです。 –

+0

真であり、スタティックライブラリとしてそれをしようとする可能性のある他の問題があるかもしれません。 exeを使ってDLLを保持するのが最も簡単です。 – crashmstr

0

ソースからコンパイルするので、ソースファイルをプロジェクトに追加して、実行可能ファイルに直接ビルドすることができます。

0

実行可能ファイルのパスにDLLをコピーするスクリプトを実行するVisual Studioプロジェクトで作成後イベントを作成することができます。

次に、アプリケーションをデプロイすると、インストーラはDLL管理を担当することができます。

関連する問題