びぎさんのご希望の内容ではないかもしれませんが、基礎知識があったほうが、よりディープな世界は理解しやすいです(^^;
もし、知ってあったら、ご容赦 m(__)m
もちろん、びぎさん対象ではなく、初心者対象ということで
では、本題
DLLって何なのよ?(^^;
DLL(Dynamic Link Library)
動的に、ライブラリをリンクするぜ(^^;
なんのこっちゃ(^^;;
何で考えようか・・
プログラム(ブラウザ、メーラとか)は、Window(枠)で出来てますよね?
その、Window を作るルーチン(手順)があるわけなのですが、その部分は、ブラウザにもメーラにもあるわけです。個々のプログラムでそういった共通に使用するルーチンを作成するのは、無駄ですよね(^^;
よって、共通ルーチンを一まとめにして、各プログラムから、その部分を呼び出すと無駄がなくなります。
この一まとめにしたものを、ライブラリといいます。
DLL は、必要になったときに必要なライブラリを動的に読み込んで、実行するというものです。
DLL は、共通のルーチン集だということで、次(^^;
Windows には、DLL の種類が大きくわけて2種類あります。
表現が難しいが・・(^^;
1.昔ながらのDLL
2.新らしいDLL
う〜む、専門用語を省くから変な名前だ・・(^^ゞ
1.こちらは、環境変数 PATH から DLL を探します。
2.こちらは、レジストリから DLL の場所を探します。
つまり、レジストリに登録するタイプと、レジストリに登録しないタイプがあるのです。
レジストリに登録しないタイプの場合、カレントの実行パス(ライブラリを呼び出すプログラムが起動した場所)および環境変数(コマンドプロンプトを開いて、set コマンドをタイプしてPATHの部分)の PATH にある、DLL が使用されます。
このタイプのDLLは名前の衝突が起きます。
レジストリに登録するタイプの場合は、ファイルはどこにあってもよいのですが、レジストリにそのライブラリのパスを登録しないと駄目です。
このタイプのDLLは、オブジェクトのルーチン名になっているので、衝突は起きません。
ただし、バージョン互換性等、色々と深いものがあります・・(^^;;
不具合がおきるのは、ファイルの検索順、および、レジストリの整合性不具合などなど(^^;;
と、結構 DLL といっても色々とありまして、この辺りは、手をだしずらい部分ではありますよね(^^;;
ちなみに、私は、こういった DLL を作成していました、昔ですね(^^;
う〜む、やっぱ簡単には書けん(^^;
わからないことは質問で(^^;;
MMX
おしゃべり掲示板!みんなの話題共有サイト




みんなの疑問、質問、相談、体験談、意見、情報が誰かの役に立っています。