通常、DLLを個別のプログラムのようにインストールすることはありません。Windowsがファイルの不足を通知する場合、正しい対処は、そのDLLを提供するコンポーネントが何かによって決まります。提供元はプログラム本体、Visual C++ Redistributable、DirectX、またはWindowsです。ファイルをダウンロードしてシステムフォルダーへコピーすることから始めないでください。このガイドでは、提供元のコンポーネントを復元する、Windowsを確認する、DLLを診断するという3つの実践的な方法を説明します。各方法の後には、エラーが出たプログラムまたはゲームを実際に起動して確認してください。

DLLを手動でインストールする必要はあるか?

DLLは、アプリケーションが依存関係とともに読み込むライブラリであり、汎用のインストールパッケージではありません。そのため、「xxx.dllをダウンロードしてSystem32に置く」という方法では、通常は原因を解決できません。ファイルが別のDLLを必要とする場合や、アプリケーションのバージョンまたはアーキテクチャと一致しない場合があります。

必要なもの 安全な方法
特定のプログラム用DLL 公式の提供元からプログラムを再インストールする
vcruntime、msvcp、msvcr該当するMicrosoft Visual C++ Redistributableをインストールまたは修復する
d3dx9、xinput、d3dcompiler公式のDirectXコンポーネントを復元するか、ゲームを再インストールする
WindowsのシステムDLL DISMを実行してからSFCを実行する
開発元から提供された個別のDLL 開発元のドキュメントに正確に従う
インターネット上の不明なDLL 手動でインストールしない

DLLをインストールする方法:手段の簡単な比較

方法 最適なケース 有効性 ユーザーの手間
コンポーネントのインストールまたはプログラムの再インストール 1つのアプリケーションだけで起きるエラー、または既知のライブラリ名 コンポーネントを正しく特定できた場合は高い 少ない
DISMとSFC 複数のプログラムでのエラーとシステムDLL Windowsコンポーネントには高い 中程度
Fionn DLL Fixer 原因が不明、またはDLLと依存関係の確認が必要な場合 自動診断と修復 少ない

方法1:コンポーネントをインストールするか、プログラムを再インストールする

使用する場面: エラーが1つのプログラムでのみ発生する場合、またはファイル名が既知のランタイムを示す場合です。たとえば、vcruntime140.dllについて個別ファイルを探すのではなく、Microsoft Visual C++ Redistributableをインストールまたは修復してください。d3dx9、xinput、d3dcompilerについては、ゲームの公式インストーラーまたは公式のDirectXコンポーネントを使用してください。

  1. エラーメッセージにあるDLLの完全な名前とプログラム名を書き留めます。
  2. エラーが1つのプログラムだけに関係する場合は、設定 → アプリ → インストールされているアプリ を開きます。
    Windowsのプログラムと機能の画面
  3. 問題のプログラムを削除するか、利用できる場合は公式の修復機能を使用します。
  4. 開発元の公式サイト、またはプログラムを入手したストアからのみインストーラーをダウンロードします。
  5. プログラムまたは指定されたコンポーネントをインストールし、もう一度起動します。

確認: プログラムが「DLLが見つかりません」というメッセージなしで起動します。インストーラーが再び同じファイルを要求する場合は、アプリケーションのアーキテクチャに合うコンポーネントのバージョンを選んだことを確認してください。32ビットプログラムにはx86、64ビットプログラムにはx64を使用します。

DLLはどこにインストールするか:System32かSysWOW64か?

フォルダー名だけで選ばないでください。64ビット版Windowsでは、System32には64ビットのシステムライブラリがあり、SysWOW64には32ビットのシステムライブラリがあります。名称は歴史的な理由で逆のように見えます。ただし、WindowsはDLLを1つの固定フォルダーだけから検索するわけではありません。アプリケーションのフォルダー、システムフォルダー、その他の許可された検索パスが関係します。また、DLL自体が他のライブラリに依存していることもあります。

regsvr32でDLLを登録する必要はあるか?

いいえ、既定では必要ありません。regsvr32はDLLのインストーラーではなく、対応する自己登録をサポートするDLLおよびOCXでのみ機能します。一般的なDLL不足エラーは、登録が必要であることを意味しません。プログラムの開発元または公式ドキュメントが、特定のファイルを登録するよう明示し、適切なコマンドを示している場合にのみregsvr32を使用してください。

方法2:Windowsのシステムファイルを復元する

使用する場面: 互いに関係のない複数のプログラムで同じエラーが発生する場合、Windowsの障害後、またはシステムコンポーネントの破損が疑われる場合です。Microsoftは、まずDISMを実行し、その後にSFCを実行することを推奨しています。

DISMのRestorehealthコマンド
  1. Windows ターミナル(管理者) を開きます。
  2. 次のコマンドを実行し、完了するまで待ちます。
    DISM.exe /Online /Cleanup-image /Restorehealth
        
  3. DISMの後、次のコマンドを実行します。
sfc /scannow
  
  1. Windowsからファイルが修復されたと表示された場合は、コンピューターを再起動します。
  2. 問題のアプリケーションをもう一度起動します。

確認: SFCがスキャンを完了して結果を表示し、アプリケーションが以前のエラーなしで開きます。詳細はMicrosoftのSFCおよびDISMの説明 で確認できます。

方法3:Fionn DLL FixerでDLLとシステムコンポーネントを確認する

使用する場面: 不足、破損、または互換性のないDLL、System32の問題、DirectX、Visual C++、.NET、OpenAL、XInputの依存関係を診断する必要があり、手動でコンポーネントを特定するのに時間がかかる場合です。Windows向けFionn DLL Fixerは、スキャン、修復、再確認に対応しています。

  1. Fionn DLL Fixerを起動し、DLLとシステム問題の自動スキャンが完了するまで待ちます。 Fionn DLL Fixerを起動する
  2. スキャン後、検出された問題の修復を開始するにはRepairをクリックします。 スキャン完了後、Repairをクリックして検出されたDLLとシステムの問題を自動修復する
  3. 処理が完了するまで待ちます。処理中、ボタンにはFixingと表示されます。 修復処理の進行中に待機する
  4. 確認ダイアログでOkをクリックし、求められた場合はコンピューターを再起動します。 修復完了後、確認ダイアログでOkをクリックする
  5. 再起動後もエラーが続く場合は、Recheckをクリックします。新たな問題が見つかった場合は、もう一度Repairを選択します。 再起動後も問題が続く場合は、Recheckをクリックして再度スキャンする

確認: 再スキャンで以前の問題が表示されず、アプリケーションが起動します。この方法は診断を簡単にしますが、プログラム固有のファイルが破損している場合に、そのプログラムを再インストールする必要がなくなるわけではありません。

まとめ

DLLを正しくインストールするには、個別ファイルの配置先ではなく、まず提供元のコンポーネントを特定してください。1つのプログラムでのエラーなら、プログラムまたは公式ランタイムを再インストールします。複数のプログラムで起きるシステム障害には、DISMを実行してからSFCを実行します。エラーの原因が不明で、DLL、システムパス、ゲームの依存関係を確認する必要がある場合は、Fionn DLL Fixerを使用してください。結果は、問題のプログラムが正常に起動することでのみ確認できます。メッセージが変わらない場合は、全文を保存し、開発元の公式サポートへ連絡してください。

よくある質問

DLLをプログラムのフォルダーに置いてもよいですか?

特定バージョンのプログラムについて、開発元の公式ドキュメントで明示されている場合に限ります。それ以外では、プログラムまたはランタイムを再インストールしてください。これにより、互換性のある依存関係一式が復元されます。

64ビットDLLを自動的にSysWOW64へ入れるべきではないのはなぜですか?

64ビット版Windowsでは、SysWOW64は32ビットのシステムライブラリ用です。ただし、DLLは検索規則に従って読み込まれ、他のファイルに依存する可能性もあるため、手動でフォルダーを選ぶことは依然として万能な解決策ではありません。

regsvr32コマンドが必要なのはいつですか?

自己登録をサポートするDLLまたはOCXに対し、開発元から明示的な指示がある場合だけです。大半のDLL不足メッセージは修復できません。

vcruntime140.dllにはどう対処すればよいですか?

公式の提供元から該当するMicrosoft Visual C++ Redistributableをインストールまたは修復するか、それを必要とするプログラムを再インストールしてください。非公式のカタログから単体ファイルをダウンロードしないでください。

DISMとSFCの両方を実行する必要はありますか?

システムファイルを復元するために、MicrosoftはDISMを実行してからSFCを実行する順序を推奨しています。これらのコマンドは、個別プログラムのファイルを再インストールする代わりにはなりません。