おしゃべり掲示板!みんなの話題共有サイト

ズーム -1元のサイズ+1

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

先頭から

DLLって何なのよ(^^;

メール転送可
記事 122 by
びぎさんのご希望の内容ではないかもしれませんが、基礎知識があったほうが、よりディープな世界は理解しやすいです(^^;
もし、知ってあったら、ご容赦 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
To:Lufa

返信コメントを書き込む


コピー保険に加入(本文コピー)  写真を貼り付ける 埋め込む
カメラ 写真(画像)貼付の設定

笑 [返信内容の確認]をするときに、あなたが撮影した写真や画像を指定します。投稿すると安全処理されてから投稿欄に表示されます。

設定を閉じる

YouTube公式チャンネル 動画貼付の設定
URL:

笑 YouTube の動画枠直下にある[共有]を押すと出るURLか、再生ページのURLを以下のように入力します。
https://youtu.be/*****

貼り付けてよい動画?

笑 企業等の公式チャンネルの動画や個人が撮影して公開中の動画を掲示板等に貼り付けて共有リンクするのは著作権上合法だそうです。

貼り付け方は?

設定を閉じる

2002年4月17日(水) 6時54分 1件目のコメント
コメント 123 by MIYAP
何年か前に、何かのソフトをインストールした時に、
DLLが勝手に古いものに置き換わったことがあったっけ…(^^;)
普通は、「残しますか?」ってメッセージが出てくるのに、
何故あのソフトは出なかったんだろう…(^^;)

Lufaさん、すみません。
単なる独り言ですm(__)m

この投稿に返信
2002年4月17日(水) 12時23分違反通報親記事 2件目
コメント 124 by Lufa
MIYAPさんへ

> 普通は、「残しますか?」ってメッセージが出てくるのに、
> 何故あのソフトは出なかったんだろう…(^^;)

私、近いものを、作ったこともあったりして・・(^^;;;;

まぁ、私のは一般には出回らないので
ある程度、適当でよかったのですが(^^;
この投稿に返信
2002年4月17日(水) 12時42分違反通報親記事 3件目
コメント 125 by Lufa

たまには、難しいことも書いてみるかなと(^^;

DLL のタイプでレジストリに登録するタイプのものを書きましたが
これを、オートメーションサーバといいます(^^;
OLE からの流れを汲んだもので、ActiveXと言っているものにあたります。
オートメーションサーバには、インプロセスサーバとアウトプロセスサーバというのがありまして、インプロセスの方が DLL、アウトプロセスサーバは EXE になります。
インプロセス、アウトプロセスの違いはプロセス内かプロセス外かの違い
う、そのままやね(^^;

某へなちょこ言語では、スレッドを使用できないため(^^;
アウトプロセスサーバを利用して、近いことをしたりします(^^;
まあ、へなちょこ言語も、今のバージョンではスレッドを作成できるようにはなっていたりします。

EXE といっても、上記のオートメーションだったりするわけで、普通の実行形式とは違う場合もあるのです。

ちなみに、EXE のアウトプロセスサーバを実行すると、レジストリに登録する処理になります。
この投稿に返信
2002年4月21日(日) 13時50分違反通報親記事 4件目