- 締切済み
DLLって
C言語を勉強しているのですが、いまいちよくDLLの意味がわかりません。例えば、シューティングのゲームで、当たり判定の処理をDLL形式?で保存して、違うシューティングを開発するときにそのDLLの関数を使って当たり判定を簡単にする。みたいな解釈でいいのでしょうか。また作成するときはどうやって作ればいいのでしょうか。ちなみにvisual studio 2008を持っています。ご教授お願いします。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- pick52
- ベストアンサー率35% (166/466)
DLLはDynamic Link Libraryの略で一定の処理を外部ファイル化して 他のプログラムなどから呼び出す(ダイナミックリンク)ことを可能に する手法です。 http://ja.wikipedia.org/wiki/%E3%83%80%E3%82%A4%E3%83%8A%E3%83%9F%E3%83%83%E3%82%AF%E3%83%AA%E3%83%B3%E3%82%AF%E3%83%A9%E3%82%A4%E3%83%96%E3%83%A9%E3%83%AA WindowAPIやDirectX、MFCなどがDLLとして提供されています。 DLLの特徴は一般的に流用可能な部分を外部化して共有化することで 毎回同じ処理を書いたりする必要をなくし、容量を抑えることにあります。 逆に言えば共有化する必要のない部分などをDLLにしてしまうとその分、 ファイル数が増えて管理しにくくなりますし、ダイナミックリンクする 分、動作など全体的に遅くなったりするかも知れません。 (容量も増えます) 因みにWindowsのDLLは単体では実行できない実行ファイルです。 EXEとはヘッダなどの一部分が異なりますが、大部分では同じです。 種類も通常のDLLの他、COM用などのDLLがあり作り方は微妙に異なり ます。 普通のDLLならVC++などで雛形を作ってくれるので後はそのまま 作っていけばいいでしょう。 COMタイプはちょっと難しかったり面倒だったりします。 COMタイプはVBでも作れるみたいですね。 DLLの作り方はネットを調べればいろいろ出てきますし、SDK関係の 本などでも解説されています。 http://www.kumei.ne.jp/c_lang/
- mk48a
- ベストアンサー率56% (1133/2007)
>例えば、シューティングのゲームで、当たり判定の処理をDLL形式?で保存して、違うシューティングを開発するときにそのDLLの関数を使って当たり判定を簡単にする。 おおむね合っていると思います。 共通処理をコンポーネント化したり、大規模なプログラムを分散して開発できるなどの利点があります。 言語が書かれていないのでC++として、詳しい説明は以下を参照してください。 http://msdn.microsoft.com/ja-jp/library/1ez7dh12(VS.80).aspx