プロが教えるわが家の防犯対策術!

プログラムにはexeファイル単体で動くものと、exeファイル以外にdllファイルなどさまざまな形式のデータと組み合わせて動くものがあります。後者のは、なぜexeファイル以外のデータが必要なのでしょうか?複数の機能を搭載していて、必要なときのみ呼び出すようにした方が効率的だからですか?

A 回答 (2件)

まあ簡単に言うと人が作った効果的で便利なプログラムがあるので


それを拝借して効率良くプログラムを動かそうと言う事で作ったので
それらの部品が必要になるわけですね
DLLだけでなく色々なプログラムがありますが、いずれもそれがないと使えないと言う欠点もあります
ただし、DLLなどはいわばお墨付きのプログラムのため相性が良く不具合が起こりにくいと言う部分もあります
だからそれらを使わずにEXEなどに全部入れてしまうと
環境が変わって不具合が出たりしてしまうわけです
DLLなら環境が変わってもバージョンアップもしてくれますので面倒が減ります
おまけに作り手がそのDLLへの対応も比較的簡単に出来るようにしてるのでDLLがバージョンアップしても容易に対応する事が出来るわけです
まあ作り手側からすればデメリットよりもメリットの方が多いというわけですね
ただし、使い手はデメリットしか見えないのでやや使いにくいかもしれないですね
    • good
    • 0

>複数の機能を搭載していて、必要なときのみ呼び出すようにした方が効率的だからですか?



それも一つの理由ですね。使用メモリが少なくて済みます。

他の大きな理由は、別々に開発したり、他人・他社が開発したソフトを利用したりするケースです。

わかりやすい極端な例としては、たとえば、10種類のソフトを開発しているAさんが、そのすべてのプログラムで、ZIP圧縮の機能を使っていたとします。
1個のEXEで動作する方式だと、圧縮のプログラムを改善した際、全プログラムのコンパイルとEXE再作成・配布が必要です。
圧縮だけをZIPLIB.DLLにまとめておけば、そのコンパイルとDLL配布だけで済みます。

また別のBさんが圧縮機能が必要なプログラムを作ろうとしたけど、圧縮アルゴリズムがよくわからないとします。この場合、AさんのZIPLIB.DLLを利用することで自分が圧縮プログラムを書かなくても機能だけ利用することが出来ます。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!