DLLがWindowsで実行できないかエラーを含んでいるというメッセージは、Windowsの Bad Image エラーです。WindowsはDLLを見つけたものの、正しく読み込めませんでした。ファイルが破損している、互換性がない、またはそのファイルを提供したアプリケーションやランタイムコンポーネントが破損している可能性があります。これはDLLが見つからないエラーとは異なります。DLLが見つからない場合はWindowsがファイルを検出できないことを意味し、Bad Imageはファイルを見つけても読み込めないことを意味します。DLL名と完全なパスで提供元を特定し、対象コンポーネントの修復からWindows全体の確認まで、4つの修復方法を順に試してください。

DLLがWindowsで実行できないかエラーを含んでいることを示すエラーダイアログ

症状

  • アプリまたはゲームの起動時にBad Imageダイアログが表示され、多くの場合はDLL名とファイルパスが示されます。
  • アプリ、ゲーム、プラグイン、またはランタイムを更新した後に、1つのプログラムだけが失敗します。
  • 無関係な複数のプログラムが失敗し、Windowsコンポーネントまたは共有依存関係の破損が疑われます。
  • メッセージには VCRUNTIME140.dll 、 MSVCP110.dll 、または X3DAUDIO1_7.dll などのファイル名が表示されることがあります。修復を始める前に、名前と完全なパスを記録してください。

簡易診断チェックリスト

  • 名前がVCRUNTIME、MSVCP、またはVCOMPで始まる場合: そのDLLはVisual C++ランタイムに属することが一般的です。表示されたパスが C:\Windows\System32 であっても、方法1に進んでください。
  • 名前がD3DX、X3DAUDIO、またはXINPUTで始まる場合: 通常はDirectXまたはゲームの前提条件に関連します。方法1に進み、ゲームまたは公式インストーラーで示されたコンポーネントを修復してください。
  • DLLが影響を受けるアプリのインストールフォルダーにある場合: 方法2に進み、そのアプリを元の提供元から修復または再インストールしてください。
  • 無関係な複数のアプリが失敗する、またはDLLがWindowsコンポーネントである場合: 方法3に進み、Windowsコンポーネントと保護されたファイルを確認してください。
  • 提供元が不明、または複数の依存関係カテゴリが関係する場合: 方法4に進み、DLLとシステムの問題をガイド付きでスキャンしてください。

方法の簡易比較

方法 最適なケース 効率 ユーザーの作業量
表示されたランタイムまたはコンポーネントを修復する Visual C++、DirectX、またはゲームの依存関係DLL 非常に対象を絞れる 中程度
アプリを修復または再インストールする 1つのアプリのフォルダー内にあるDLL、または1つのアプリだけが失敗する場合 対象を絞れる 少ない~中程度
Windowsファイルを修復する 複数の失敗、またはWindowsコンポーネントであることが確認された場合 システム全体を確認 中程度
Fionn DLL Fixer 原因が不明なDLL、破損、欠落、またはバージョン不一致の問題 ガイド付きのスキャンと修復 少ない

方法1:エラーに示されたランタイムまたはコンポーネントを修復する

使用する場面: DLL名が共有ランタイムまたはゲームコンポーネントを示している場合です。フォルダーだけでなく、DLLの提供元に基づいて修復方法を選んでください。

手順

  1. Bad ImageダイアログからDLL名と完全なパスをコピーします。
  2. 名前から提供元の候補を照合します。 VCRUNTIME*.dll 、 MSVCP*.dll 、および VCOMP*.dll はMicrosoft Visual C++ Redistributableを示し、 D3DX*.dll 、 X3DAUDIO*.dll 、および XINPUT*.dll はDirectXまたはゲームの前提条件を示します。
  3. 影響を受けるソフトウェアの提供元が公開している公式インストーラーまたはサポート手順を使い、該当するランタイムまたはコンポーネントを修復または再インストールします。
    Windows設定のインストールされているアプリ一覧
  4. コンポーネントのインストーラーから要求された場合は、Windowsを再起動します。

確認方法

影響を受けたアプリをもう一度開きます。同じBad Imageダイアログが表示されなければ成功です。再び表示される場合は、DLL名が正確か確認し、ファイルがアプリ自体に属する場合は方法2に進んでください。

方法2:影響を受けるアプリを修復または再インストールする

使用する場面: 特に表示されたDLLがそのアプリのインストールディレクトリ内にある、1つのアプリだけが失敗する場合です。

手順

  1. 影響を受けるアプリを閉じ、DLL名とパスを記録します。
  2. 提供元が用意している場合は、アプリの保守または修復オプションを開きます。
  3. 修復オプションがない、またはエラーが解決しない場合は、Windowsの設定からアプリをアンインストールします。
  4. 元の提供元またはストアからアプリを再インストールします。

確認方法

インストール後に同じアプリを起動します。正常に修復されていれば、元のBad Imageメッセージを表示せずに通常の起動画面に進みます。

方法3:Windowsコンポーネントとシステムファイルを修復する

使用する場面: 無関係な複数のアプリでBad Imageエラーが表示される、または対象のランタイムとアプリを修復しても問題が残る場合です。

手順

  1. 管理者としてコマンド プロンプトを開きます。
  2. 次のコマンドを実行し、完了するまで待ちます。
    DISM /Online /Cleanup-Image /RestoreHealth DISMのRestoreHealthコマンドを実行する画面
  3. DISMの完了後に、次のコマンドを実行します。
    sfc /scannow
    SFCのscannowコマンドを実行する画面
  4. Windowsを再起動します。

確認方法

再起動後、影響を受けたアプリと、以前に失敗した別のプログラムをテストします。元のアプリだけが失敗する場合は、そのランタイムまたはインストールが提供元である可能性が高くなります。

方法4: Fionn DLL Fixer でエラーを修復する

使用する場面: DLLの提供元が不明、手動診断が複数のランタイムカテゴリにまたがる、または検出されたDLLとシステムの欠落、破損、バージョン不一致の問題をガイド付きでスキャンしたい場合です。手動での診断作業を減らすための推奨オプションです。

手順

  1. Fionn DLL Fixerを起動します。ソフトウェアはPCを自動的にスキャンしてDLLとシステムの問題を確認し、スキャン完了後に検出結果を表示します。 Fionn DLL Fixerを起動する画面
  2. スキャンが完了したら、Repairをクリックして、検出されたすべてのDLLとシステムの問題の自動修復を開始します。 スキャン後にRepairをクリックして修復を開始する画面
  3. 修復が進行するまで待ちます。この間、すべての問題が修復されるまでボタンはFixingに変わります。 修復の進行中を示す画面
  4. 修復が完了したら、確認ダイアログでOkをクリックします。表示された場合は、問題が解決したか確認する前にコンピューターを再起動してください。 修復完了後にOkをクリックする確認ダイアログ
  5. 再起動後も問題が続く場合は、Recheckをクリックして再度スキャンします。新しい問題が見つかった場合は、Repairをもう一度クリックして修復します。 問題が続く場合にRecheckをクリックして再スキャンする画面

確認方法

修復と必要な再起動の後、元のアプリを開きます。エラーが続く場合はRecheckを使用し、DLL名、パス、アプリのバージョン、スキャン結果をアプリ開発元または公式サポートに伝えてください。

確認チェックリスト

  • 影響を受けたアプリが、Bad ImageまたはDLLダイアログを表示せずに開きます。
  • 元のDLL名と完全なパスが、新しいエラーメッセージに表示されません。
  • 問題が複数のプログラムに及んでいた場合、以前に失敗した別のアプリも正常に開きます。
  • コンポーネントのインストーラー、修復コマンド、または修復ツールから要求された場合は、Windowsを再起動済みです。

まとめ

DLL名とパスから始め、そのファイルを実際に提供しているコンポーネントを修復してください。Visual C++およびDirectXの名前は通常、ランタイムまたは前提条件の修復を示し、1つのアプリのフォルダー内にあるDLLは通常、そのアプリの修復を示します。複数のアプリが失敗する場合、またはWindowsコンポーネントが関係している場合は、DISMとSFCを使用してください。診断が不明確なままの場合は、 Fionn DLL Fixer で検出されたDLLとシステムの問題をスキャンして修復でき、再確認オプションも使用できます。影響を受けたプログラムを再度開いて、修復できたことを確認してください。ダイアログが残る場合は、正確なメッセージ、DLLパス、アプリのバージョンを添えて提供元にお問い合わせください。

よくある質問

Bad ImageのDLLエラーとは何ですか?

WindowsがDLLを見つけたものの、正しく読み込めない状態です。原因として、破損、互換性のないバージョン、またはファイルを提供したアプリケーションやコンポーネントの破損が考えられます。

System32のパスであれば、最初にDISMとSFCを実行すべきですか?

いいえ。フォルダーの場所だけではDLLの提供元を特定できません。Visual C++ランタイムDLLはSystem32に保存されることがあるため、該当する場合は先にファイル名を確認し、その提供元を修復してください。

VCRUNTIME140.dllまたはMSVCP110.dllを提供するランタイムは何ですか?

VCRUNTIMEおよびMSVCPという名前は、一般にMicrosoft Visual C++ Redistributableに関連付けられます。影響を受けるソフトウェア提供元の公式の前提条件またはサポート情報を使用して、適切なランタイムを選択してください。

DLLを手動で置き換えるべきですか?

検証されていない単体DLLのダウンロードは使用しないでください。所有するランタイム、アプリケーション、またはWindowsコンポーネントを修復する方が、互換性のあるファイル一式を復元できる可能性が高くなります。

公式サポートには何を送ればよいですか?

完全なエラーテキスト、DLLファイル名、表示されたパス、影響を受けたアプリ名とバージョン、すでに試した修復手順を送ってください。