DLL(Dynamic Link Library)とは、windows用の実行ファイルの一つである。
DLLは実行ファイルだが、EXEファイルとは違い、ダブルクリックしても実行できない。
どうやって実行しているのかというと、他のEXEファイルがDLLファイルの機能を呼び出しているのである。
何度も使う機能を、様々なソフトから利用できるようにしたのがDLLである。
プログラマがプログラムを書く際に、画面表示や入力、ファイル操作などを一からすべて書いていては非常に効率が悪い。そこで、ある一定の機能を持ったプログラム(又はその集合)をライブラリ(Library)と言う形で作っておき、使い回しが効くようにしてある。
MS-DOSのように一度に1つのプログラムしか実行できないOSでは、ライブラリを全て実行ファイルに組み込んでも変わりがないが、Windowsでは複数のプログラムが1つのライブラリを同時に使う事はかなり多い。後述のAPIなどは特に多く、1つ1つのプログラムがライブラリを内蔵しているとメモリの無駄になる。
そこで、重複するものは1つだけ読み込み、共有するようにするためにDLLが使われるのである。動的(実行中、Dynamic)にプログラム本体(exe)と結合(Link)されるライブラリなのでDLLと呼ばれているわけである。
主にDLLは、APIやプラグインとして利用されている。
APIとしての利用は、user32.dllやkernel32.dllなどのwindowsAPIがある。
ブラウザのプラグインも、一部はDLLを追加することで実現されている。
.NET FrameworkでのDLLはCLR(共通言語ランタイム)と呼ばれ、C#やVisual Basicでクラスを呼び出すことができる。アプリケーション開始時にCIL(共通中間言語)に変換される。
Win32形式のDLLを「アンマネージドDLL」と呼ぶ。COM形式のDLLは参照設定して呼び出すことができる。アンマネージドDLLはSystem.Runtime.InteropServices名前空間にあるDllImport属性で呼び出すことができる。
掲示板
8 ななしのよっしん
2013/07/27(土) 17:22:53 ID: w3aDpkNQRM
C:\windows\system32\rundll32.exe "C:\Program Files\Windows Photo Viewer\PhotoViewer.dll", ImageView_Fullscreen 画像パス
でやるどフォトビューア起動するけどこのPhotoViewer.dllって何?
9 ななしのよっしん
2014/09/20(土) 21:55:49 ID: c87U4dxLJI
>>8
それがフォトビューワーの本体でDLL単体じゃ起動できないからrundll32.exeに読み込ませているのではないか?
10 ななしのよっしん
2016/09/21(水) 10:49:33 ID: x25Km4XY1E
ちなみにスタティックライブラリというのもある
長所や短所はDLLとほぼ逆
用途としては、速度を極限まで求めたい時や、
DLLのインストールの手間を省きたい時などか
急上昇ワード改
最終更新:2024/12/02(月) 20:00
最終更新:2024/12/02(月) 20:00
ウォッチリストに追加しました!
すでにウォッチリストに
入っています。
追加に失敗しました。
ほめた!
ほめるを取消しました。
ほめるに失敗しました。
ほめるの取消しに失敗しました。