.dllファイルとは何ですか？ ソースコードをコンパイルした結果のファイルですか？　どういう形式で配布されるものですか？


.dllファイルとは何ですか？  
ソースコードをコンパイルした結果のファイルですか？  
それとも、.dllファイル自体が何かの言語で書かれているのですか？

.dllファイルは、一般にはどういう形式で配布されるのですか？  
・ソースコードとして配布される？  
・それともexeファイルと一緒に配布される？




[ffmpeg](/questions/tagged/ffmpeg "'ffmpeg' のタグが付いた質問を表示") 固有の事情を言えば

ffmpeg
は開発者からはソースコードのみ配布となっています。理由は「コーデックの使用料金を負担するのは誰？」というイヤンな問題を回避するためです。なのでネット上で検索すると
ffmpeg の DLL を使う別ソフトの提供者の判断なり契約なりで「どれを使い、どれを使わない」を選択した結果の DLL
ファイルがいろいろ入り乱れています。

@re9 氏が `avformat-59.dll` をあなたのソフトで使いたかったら ffmpeg のソースコードから `avformat-59.dll`
を自分でビルドすればよいわけです。そしてあなたのソフトのインストーラに ffmpeg の DLL
をインストールするよう追加すればよいことになります。ライセンス表示をどこかに追加する必要があるかもしれません。

当然ながらその際には各種コーデックのどれを使う使わないを選択し必要ならコーデックの権利者と契約して使用料金を払うことになります。 Windows
に標準で付属しているコーデックなら Microsoft がコーデックの権利者と契約を結んで使用料金を払い済み（ Windows
の購入価格の一部として末端ユーザが払い済み）だから、あなたのソフトがそのコーデックを使う場合には追加料金が必要ない、のかもしれません。その辺のライセンス問題は
SO では扱わないというか扱えないというか扱っても誰も責任取れませんというか。




[ffmpeg](/questions/tagged/ffmpeg "'ffmpeg' のタグが付いた質問を表示") 固有の事情を言えば

ffmpeg
は開発者からはソースコードのみ配布となっています。理由は「コーデックの使用料金を負担するのは誰？」というイヤンな問題を回避するためです。なのでネット上で検索すると
ffmpeg の DLL を使う別ソフトの提供者の判断なり契約なりで「どれを使い、どれを使わない」を選択した結果の DLL
ファイルがいろいろ入り乱れています。

@re9 氏が `avformat-59.dll` をあなたのソフトで使いたかったら ffmpeg のソースコードから `avformat-59.dll`
を自分でビルドすればよいわけです。そしてあなたのソフトのインストーラに ffmpeg の DLL
をインストールするよう追加すればよいことになります。ライセンス表示をどこかに追加する必要があるかもしれません。

当然ながらその際には各種コーデックのどれを使う使わないを選択し必要ならコーデックの権利者と契約して使用料金を払うことになります。 Windows
に標準で付属しているコーデックなら Microsoft がコーデックの権利者と契約を結んで使用料金を払い済み（ Windows
の購入価格の一部として末端ユーザが払い済み）だから、あなたのソフトがそのコーデックを使う場合には追加料金が必要ない、のかもしれません。その辺のライセンス問題は
SO では扱わないというか扱えないというか扱っても誰も責任取れませんというか。

