.DLL

DLL ファイル

Dynamic Link Library
質問する
クイック回答

DLL(Dynamic Link Library)は、プログラムの実行中にロードされるコンパイル済みコードを保持する Windows のライブラリファイルです。ダブルクリックして開くものではありません。アプリが DLL の欠落を報告した場合は、ランダムなサイトからファイルをダウンロードするのではなく、そのアプリを再インストールするか、Microsoft Visual C++ Redistributable をインストールしてください。開発者は dotPeek、ILSpy、Resource Hacker などで DLL の内部を確認できます。

開発元: Microsoft カテゴリ: システムファイル オープンスタンダード MIME: application/vnd.microsoft.portable-executable
対応OS Windows Linux
関連: .NOMEDIA · .TMP · .LNK · .PKG

このページの内容

19k+ 個の拡張子を索引済み
最終確認日:Jun 15, 2026

ファイルの種類がわかりませんか?

ファイルを識別ツールにドロップしてください。最初の数バイトを読み取って形式を特定します。

ファイルを識別する

DLL ファイル形式とは?

.dll 拡張子を持つファイルには、Microsoft Windows 内で共有される動的リンクライブラリが含まれています。.dll 形式は .exe ファイル と同じバイナリ構造(Portable Executable (PE) 形式)を使用しており、オフセット 0 のマジックバイト MZ と、DOS スタブヘッダーが指す PE\0\0 シグネチャによって識別されます。ただし、実行ファイルとは異なり、.dll を直接起動することはできず、ホストプロセスによってロードされる必要があります。

.dll 内のすべてのデータはメモリにロードされ、複数のプログラムで同時に使用できます。ライブラリは通常、ActiveX コントロール、コントロールパネルアプレット、デバイスドライバー、またはアイコンやフォントのリソースを保持します。ただし、これらの役割を果たすファイルは、COM コンポーネント用の .ocx やカーネルモードドライバー用の .sys など、異なる拡張子を持つことがよくあります。また、大規模なアプリケーションのモジュールコンポーネントとして使用され、プラグインとして特定の機能を提供することもあります。

ライブラリには以下が含まれる場合があります:

  • サブプログラム、関数、プラグインのコード
  • グラフィックスや文字列テーブルを含むデータ
  • メニュー、ダイアログ、バージョン情報などの関連リソース

.dll 形式の仕様は .exe ファイルと同じであり、どちらも PE(64ビット Windows では PE32+)コンテナを使用しますが、ライブラリは単体で動作するプログラムではありません。呼び出し元のプログラム内では、ライブラリへの参照とロードは、必要になるまで遅延させることができます(遅延ロード)。.dll モデルはモジュール化されたアプリケーションアーキテクチャをサポートし、コード断片の再利用を促進し、メモリ使用量とディスクスペースの両方を削減します。.NET 用にコンパイルされたマネージド .dll ファイルは、標準の PE 構造に加えて CLR ヘッダーを持ち、ネイティブのマシンコードの代わりに MSIL バイトコードを含んでいます。

セキュリティと安全性

リスク: HIGH

DLL は実行コードであり、マルウェアに悪用されやすい性質があります。悪意のある DLL は正当なプロセス内で実行されます(DLL ハイジャック/サイドローディング - アプリが最初に検索する場所に不正な DLL を配置する手法)。また、「DLL 修正」を謳うダウンロードサイトは、典型的なマルウェアや詐欺の経路です。ルール:サードパーティの「DLL ダウンロード」サイトから個別の DLL をダウンロードしないでください。DLL 欠落エラーは、アプリの再インストール、公式の Visual C++ Redistributable / DirectX ランタイムのインストール、または sfc /scannow の実行で修正してください。不明な DLL はデジタル署名(プロパティ → デジタル署名)を確認し、VirusTotal でスキャンしてください。System32 からランダムに DLL を削除すると Windows が壊れます。

形式の詳細

概要
正式名称Dynamic Link Library
開発元Microsoft登場時期 1985 (Windows 1.0, NE format); current PE format since Windows NT 3.1, 1993
MIME タイプapplication/vnd.microsoft.portable-executable
タイプWindows PE (Portable Executable) 共有ライブラリ - コンパイル済みバイナリコード
標準規格オープン・ロイヤリティフリー
マジックバイト ・ ファイルシグネチャ
オフセット
0001
16進数
4D5A
ASCII
MZ
DOS ヘッダーフィールド e_lfanew (オフセット 0x3C) に格納されたオフセットにある "PE\0\0" (50 45 00 00) が続きます。DLL フラグは COFF Characteristics フィールドのビット 0x2000 です。

DLL ファイルを開くプログラム

Windows6 apps
Microsoft Visual Studio フリーミアム 開発者向け:プロジェクトで DLL を参照するか、組み込みのオブジェクトブラウザーや dumpbin を介して検査します。
Resource Hacker 無料 DLL を開いて、アイコン、ダイアログ、文字列、バージョン情報の表示、抽出、置換を行います。
Microsoft Windows (built-in loader) 標準搭載 DLL は、それらを必要とするプログラムによって自動的にロードされます。COM DLL の場合は «regsvr32 file.dll» を使用します。システム DLL の修復には «sfc /scannow» を使用します。
dotPeek (JetBrains) 無料 .NET DLL を開いて、読み取り可能な C# コードにデコンパイルします。
ILSpy オープンソース オープンソースの .NET デコンパイラ。DLL をドラッグして、名前空間やデコンパイルされたコードを閲覧できます。
Dependencies (lucasg) オープンソース Dependency Walker の現代的な代替ツール。DLL のインポート/エクスポートと、必要とする他の DLL を表示します。
Linux1 app
Ghidra オープンソース DLL をインポートして、ネイティブコードの完全な逆アセンブル/デコンパイルを行います(Windows/macOS でも利用可能)。

技術的詳細

詳細仕様
バイナリ形式32ビット Windows では PE (Portable Executable)、64ビット Windows では PE32+。 .exe と同じコンテナ構造
マジックバイトオフセット 0 に 4D 5A ("MZ")。DOS スタブフィールド e_lfanew (0x3C) に格納されたオフセットに "PE\0\0" (50 45 00 00)
DLL 識別フラグCOFF Characteristics フィールドの IMAGE_FILE_DLL ビット (0x2000) により、同じ PE コンテナ内の EXE と DLL を区別
MIME タイプapplication/vnd.microsoft.portable-executable
エクスポートメカニズムExport Directory Table が関数を名前や序数でリスト化。呼び出し元は Export Address Table (EAT) を介して実行時アドレスを解決
インポートメカニズムImport Directory Table が必要な DLL と関数名または序数を宣言。Windows ローダーがロード時に Import Address Table (IAT) をパッチ
リンクモードインポート .lib スタブを介した暗黙的(ロード時)リンク、または LoadLibrary() と GetProcAddress() を介した明示的(実行時)リンク
ASLR と再配置.reloc セクションがベース再配置テーブルを保持。Windows の ASLR は実行時に実際のロードアドレスをランダム化し、PE オプションヘッダーの優先 ImageBase を上書き
共通セクション.text (実行コード), .data (初期化済みデータ), .rdata (読み取り専用データとインポート), .rsrc (リソース), .reloc (ベース再配置)
埋め込みリソース.rsrc セクションに型指定されたリソース(RT_ICON, RT_DIALOG, RT_STRING, RT_VERSION, RT_MANIFEST)を格納。Resource Hacker などのツールで表示・編集可能
アーキテクチャビルドターゲット CPU (x86, x64, ARM, ARM64) ごとに個別の DLL バイナリが必要。macOS の dylib と異なり、ファットバイナリは非サポート
マネージド .NET DLLCLR でコンパイルされた DLL は、ネイティブマシンコードではなく MSIL/CIL バイトコードを指す IMAGE_COR20_HEADER を埋め込み。ILSpy や dotPeek でデコンパイル可能
サイドバイサイド・アセンブリWindows XP 以降の WinSxS により、アプリケーションマニフェストファイルに従って、同じ DLL の複数のバージョンを 1 台のマシンに共存可能
エントリポイントDLL_PROCESS_ATTACH, DLL_THREAD_ATTACH, DLL_PROCESS_DETACH, DLL_THREAD_DETACH の 4 つのイベントでローダーから呼び出されるオプションの DllMain() 関数
遅延ロード/DELAYLOAD リンカーオプションにより、エクスポートされた関数の最初の呼び出しまで DLL のロードを延期し、プロセスの起動時間を短縮
リリース日1985 (Windows 1.0, NE format); current PE format since Windows NT 3.1, 1993
オープンスタンダードはい · ロイヤリティフリー
仕様書learn.microsoft.com

DLL の変換

コミュニティ Q&A

ユーザーからの質問
質問する
DLL ファイルを扱うユーザーからヘルプを得られます。OSやソフトウェアのバージョンなど、具体的に記載してください。
アカウント不要 ・ 通常1日以内に回答されます
R
reguntas y respuestas de la comunida10 d ago未回答
Preguntas y respuestas de la comunidad preguntado por usuarios Hacer una pregunta rápida
回答待ち

よくある質問

「XXXX.dll が見つかりません」というエラーを修正するにはどうすればよいですか?
エラーを表示しているプログラムを再インストールしてください。vcruntime/msvcp/msvcr 関連の DLL の場合は、microsoft.com から最新の Microsoft Visual C++ Redistributable をインストールしてください。d3dx9/xinput 関連の DLL の場合は DirectX エンドユーザーランタイムをインストールし、システム DLL の場合は «sfc /scannow» を実行してください。DLL ダウンロードサイトは避けてください。
DLL ダウンロードサイトから DLL をダウンロードしても安全ですか?
いいえ。これらのサイトは未検証であり、マルウェアの感染経路として知られています。また、バージョンが一致しない DLL を 1 つ入れただけでは、通常アプリは修正されません。代わりに公式のインストーラーやランタイムを使用してください。
DLL ファイルを開いて中身を確認することはできますか?
はい、適切なツールを使用すれば可能です。Resource Hacker はアイコン、ダイアログ、文字列を表示します。dotPeek や ILSpy は .NET DLL を C# にデコンパイルします。Dependencies はエクスポートとインポートを表示します。ダブルクリックしても何も起こりません。DLL は単体で動作するプログラムではないからです。
空き容量を増やすために DLL ファイルを削除してもいいですか?
削除しないでください。Windows や Program Files フォルダ内の DLL は OS やアプリに必要です。これらを削除すると、まさに多くの人が検索している「DLL が見つかりません」エラーの原因になります。代わりに「ディスク クリーンアップ」を使用してください。
regsvr32 で DLL を登録するにはどうすればよいですか?
管理者権限でコマンドプロンプトを開き、«regsvr32 path\to\file.dll» を実行します(これは DllRegisterServer を公開している COM DLL でのみ機能します。通常の DLL ではエラー 0x80070057/126 が返されます)。
DLL ファイルはウイルスですか?
DLL は Windows の通常のコンポーネントですが、マルウェアが DLL である可能性もあります。注意すべき点:Temp や Downloads フォルダにある DLL、デジタル署名がないもの、または C:\Windows\System32 以外にあるシステム DLL 名(ntdll.dll など)のファイルです。不審なファイルは Defender や VirusTotal でスキャンしてください。
DLL を EXE に変換できますか?
いいえ。DLL はプログラムの開始点(エントリポイント)を持たないライブラリです。その機能が必要な場合は、その DLL が属するアプリケーションを使用するか、(開発者の場合は)自身のコードからその DLL を呼び出してください。

参考文献

1Microsoft Learn - PE Format specificationlearn.microsoft.com
2Microsoft Learn - What is a DLLlearn.microsoft.com

さらに探索

データベース全体から

今週のトップ拡張子

1.AQQAQQ Instant Messenger File
2.CRDOWNLOADChrome Partial Download File
3.PARTPartial Download File
4.DATProgram Data File (generic)
5.EXEWindows Executable (Portable Executable)
6.BINCD/DVD Disc Image (BIN/CUE)
7.RPMSGRestricted Permission Message
8.NOMEDIAAndroid No-Media Marker File
9.MDMarkdown Document
10.TXTPlain Text File

関連する拡張子

.NOMEDIAAndroid No-Media Marker File
.TMPTemporary File
.LNKWindows Shell Link (Shortcut)
.PKGmacOS Installer Package
.ETLEvent Trace Log
.ASECAndroid Secure Encrypted Container (apps-on-SD container)

無料ファイルツール

ブラウザで動作するファイル識別および画像変換ツール。すべてお使いのデバイス上で実行されます。

ツールボックスを開く

ファイル拡張子を A-Z で閲覧