ここから本文です

C言語 - ライブラリ、DLL、Libなどのファイルについて

mirauri_natureさん

2010/2/1523:47:33

C言語 - ライブラリ、DLL、Libなどのファイルについて

C言語を始めて1年ほど経ちました。
文法はある程度理解し、単純なゲームや電卓などは作れるようになりました。
そのため、書き方云々にはあまり困っていません。

ですが、ライブラリ、DLL、Libファイルの扱いに困っています。

詳しい実装説明があるならいざ知らず、他者の作ったライブラリを使えと言われるとお手上げ状態です。
ライブラリを解説しているホームページなどをみると「DLLが~」「Libが~」と書かれていまして、正直まったくわかりません。

そこで、

・ライブラリ、DLL、Libなどの説明を丁寧に、文法だけわかっている初心者でもわかるようなレベルの解説が行われている書籍、
ホームページなどはないか。
・実際に自分で作ってみる、実装の演習を指示、教授してくれる書籍、ホームページなどはないか。
(できればWindows系のOS、Visual C++環境下で書かれているもの)

という二点の回答をお願いします。

ライブラリ、DLL、Libをずっと避けていたもので、ここいらでマスターしたいです。
どうぞ、よろしくお願いします。

あと、コンパイルエラー集と解決方法をまとめた書籍なんかも探しています。


最後まで読んでくださって感謝します。

閲覧数:
9,913
回答数:
4
お礼:
100枚

違反報告

ベストアンサーに選ばれた回答

zwigooさん

2010/2/1601:49:33

>文法はある程度理解し、単純なゲームや電卓などは作れるようになりました。
>そのため、書き方云々にはあまり困っていません。

うーん。
まだまだ、理解が浅いんじゃないかと思いますが。
「Cプログラミング診断室」
http://www.pro.or.jp/~fuji/mybooks/cdiag/index.html#mokuji
ここに書かれている問題点とか理解されていますか?
ここの「C言語再入門」とか。
http://www.kijineko.co.jp/tech/creintro
ライブラリが苦手って段階で分割コンパイルも苦てじゃないかと心配してみたり。
http://www.kijineko.co.jp/tech/sepcomp/part1


>ライブラリ、DLL、Libなどの説明を丁寧に、文法だけわかっている初心者でもわかるようなレベルの解説が行われている書籍、
ホームページなどはないか。

ライブラリの理解は、まずリンカ(リンケージエディタ)の理解から。
http://ja.wikipedia.org/wiki/%E3%83%AA%E3%83%B3%E3%82%B1%E3%83%BC%E...
LIBファイルとは、OBJから作られるって事を分かってい無いと話になりませんね。まぁ、その前にOBJが何なのか分かるか不安ですが。そこら辺はWikipediaをたどってみて下さい。

>ですが、ライブラリ、DLL、Libファイルの扱いに困っています。

LIBの作り方。
http://www.geocities.jp/ky_webid/win32c/056.html
DLLの作り方。
http://www.geocities.jp/ky_webid/win32c/057.html


>あと、コンパイルエラー集と解決方法をまとめた書籍なんかも探しています。
書籍にはないですが、MSDNにあります。
http://msdn.microsoft.com/ja-jp/library/8x5x43k7%28VS.80%29.aspx

ただ、エラー集に頼るのは経験不足だと思います。
エラーを無くすにはどうしたら良いのかとか、バグを予防するテクニックを知りたいなら下記の本があります。
「C言語 デバッグ完全解説 (Gihyo Technology)」
http://www.amazon.co.jp/dp/4774133620

この質問は投票によってベストアンサーに選ばれました!

ちょい足しを取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

このQ&Aで解決しましたか?質問する

閉じる

ベストアンサー以外の回答

1〜3件/3件中

並び替え:回答日時の
新しい順
|古い順

編集あり2010/2/1917:02:05

知らないうちにライブラリは使っているんですけどね。
例えばprintfもライブラリ関数ですよ。

K&Rの「プログラミング言語C」で hello, world を出力するプログラムの説明の中にも printf はC言語自体に含まれるものではなく単なるライブラリ関数のひとつに過ぎないと書かれています。

hello, worldプログラム自体が、(標準ライブラリの)インクルードやリンクが正しく機能するかどうかを確認するためのものだという話もありますね。


※追記
ライブラリを理解するためには、まず、自分で、自分の書いたコードで、一切変更しないで再利用できるソースファイルを作れるようになってください。
それがソースレベルのライブラリです。
そこから
ソースファイルを変更しないのだからコンパイル済みのファイルを使えばコンパイルのコストを省略できる。
再利用できるコンパイル済みのファイルがたくさん貯まったらひとつにまとめたら可搬性が上がる。
とステップアップしましょう。
そうしたら自ずとlibファイルの価値が理解できます。

DLLはウィンドウズOSの機能を利用した動的リンク機構です。
付属のlibをリンクすれば使えることが多いですが、
DLLに直接アクセスするには単純にAPI(要は使い方)を覚えるしかありません。
その前に関数ポインタとかポインタを完璧に理解しておきましょう。


> あと、コンパイルエラー集と解決方法をまとめた書籍なんかも探しています。

エラーメッセージの上にカーソルを持っていってF1キーを押すと出てくる解説がエラー集の代わりになりませんかね。
#というかエラー集そのもの?
解決方法は千差万別なんで他の回答にあるようにエラー番号含めてネットで検索するのが最も有効だと思います。
#ネット(検索)は事例集そのもの。

ちょい足しを取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

teddy_b04さん

2010/2/1601:17:50

Googleなどで検索してみましたか? 「DLL」で検索したら、それなりに引っかかりますよ。
http://www.google.com/search?hl=ja&safe=off&rls=en&num=50&q=dll

また、ライブラリの概念はご存じでしょうか?要は関数をコンパイルして生成されるバイナリデータ(オブジェクト)をまとめたものです。メリット、作り方、使い方などは検索エンジンで探せば見つかるはずですので、上記を参考にしてご自分で調べてみて下さい。DLLはDynamic Link Libraryの略ですが、何がダイナミック(動的)なのかも調べられると思います。

コンパイルエラー集については、Visual C++(Studio)のものでしたらMSDNに全部掲載されています。
http://msdn.microsoft.com/ja-jp/library/8x5x43k7.aspx
(10年以上前はコンパイルエラー集を含むヘルプの内容をまとめた書籍もありましたが、高いうえに分厚くて検索もしにくいという3重苦だったので、Webがこれだけ普及した現在は売れると思えません。発売されていないのではないでしょうか)

なお、C言語などの言語処理系とライブラリは本来別のものです。純粋なC言語の入門書には、ソースプログラムの書き方のみが記述されていて、ライブラリについて言及されていないものもありますから、1年勉強して知らなくても卑下することはありませんよ。私も「プログラミング言語C」でC言語を勉強しましたが、ライブラリのことなんて一言も書いてありませんでしたからね。

ちょい足しを取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

2010/2/1600:09:31

貴方はご自分で文法はある程度理解したと仰っておられます。
しかし、DLLやLibはC言語の入門編で必ず言及されています。

もしDLLに関するホームページで理解出来ない言葉が出てきているのであれば、
それはまだC言語の基礎の習得が完全にはが出来ていない、ということです。

コンパイルエラーが出た時はエラーコード(Cxxxx)などをGoogleで調べれば原因はすぐに判ります。
英文のサイトが出てしまって、英語が読めないから教えて、ではいつまでたっても初心者からぬけられませんよ。
少なくともコンパイルエラーに表示される英語は中学生レベルのものです。

ちょい足しを取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

ID/ニックネームを選択し、「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問や知恵ノートは選択されたID/ニックネームのMy知恵袋で確認できます。

ほかのID/ニックネームで利用登録する