- ベストアンサー
ライブラリ、.libとは?
ライブラリと検索すると、標準ライブラリばかり出てきて「○○.lib」のことがいまいち見えてこないのですが、このファイルはどういったものなのでしょうか。 .h、.c、.cppなどでは代用が利かないものなのでしょうか。 あと、C、C++にはライブラリと言うものがあり、あると便利・・・ というのは何となく分かるのですが、 1.ライブラリを配布しているのをあまり見ませんが、どこかまとまって置いてある場所はあるのでしょうか。 2.あまり記載されている参考書が見当たりませんが、どのように使うものなのでしょうか。 3.「このライブラリはどういうものか覚えていた方がいい」というものはありますでしょうか。 この3点について教えていただけるとありがたいです。 よろしくお願いいたします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
>1.ライブラリを配布しているのをあまり見ませんが、 >どこかまとまって置いてある場所はあるのでしょうか。 なんのライブラリのことでしょうか? ライブラリとは汎用性の高い関数や機能を再利用可能な形にした物を 言います。これは、目的によってプログラマが作ったり、 既に公開されたりしているものもあります。 >2.あまり記載されている参考書が見当たりませんが、 >どのように使うものなのでしょうか。 ライブラリの作りはそれを使う環境にも依存しますが、 Windows環境の場合、Libファイルにはダイナミックリンクライブラリ (DLL)とスタティックリンクライブラリという2種類が存在します。 Libファイル(***.lib)はDLLの場合、そのライブラリが提供している 関数の関数名などの外部参照用のデータが入っています。 そして、実行には使用したLIBファイルのバイナリデータが入った DLLファイル(***.dll)が必要です。 スタティックリンクライブラリのLibファイルは、それ自体に ライブラリのバイナリが含まれており、使う場合はその使ったアプリ にバイナリとして埋め込まれます。 なので、実行時にDLLファイルは必要ありません。 >3.「このライブラリはどういうものか覚えていた方がいい」 >というものはありますでしょうか。 ライブラリについては特に覚えることは多くありませんし 自分でライブラリを作るなら覚えて損はありません。 むしろ、覚えなくてはいけないのは、ライブラリにした場合に どのようなことに注意するかです。 ライブラリの扱いは上には上にも書いたとおり、環境に依存する ところがあるため、使用する環境に応じてある程度作り方が 違ってきます。
その他の回答 (2)
- php504
- ベストアンサー率42% (926/2160)
Windowsの場合ですが例えばzip圧縮ファイルを読み書きしたいという場合にzlib.dllを使うと便利です。 自分のプログラムで"zlib.h"をインクルードして"zlib.lib"をリンクすれば"zlib.dll"の中の関数が使えるという感じです。
お礼
ありがとうございます。 なるほど、.hと.libと.dllはそういう関係だったんですね。 分かりやすいです。
- jacta
- ベストアンサー率26% (845/3158)
バイナリで配布しているライブラリについては環境に依存した話になります。環境を補足してください。 環境に依存しない、あるいは何種類かの環境に対応したライブラリの場合、配布はソースファイルで行い、ユーザーが自分の環境に応じてコンパイルすることが多いかと思います。
補足
申し訳ないです。 うっかり忘れてました。 大概はXP、VC++6.0などを使用いたします。 最近VisualStudioを購入したので乗り換えるつもりです。 あと、3点についてじゃないですね。 誤植多くてすみません。
お礼
ありがとうございます。 大体アウトラインが見えてきました。 幾つか気になるキーワードを頂いたので、後は自分で調べて、使うかはそれから考えようと思います。