Windowsで「D3DCompiler_47.dllが見つかりません」エラーを修正する方法

D3DCompiler_47.dll が見つからないというエラーでゲームやアプリがクラッシュする場合の対処方法

「D3DCompiler_47.dll がコンピューターに見つからないため、プログラムを開始できません」のようなエラーに遭遇すると、特に好きなゲームをプレイしたり、DirectX に依存するソフトウェアを実行しようとしているときに、かなりイライラします。通常は大きな問題ではありませんが、特定の DLL に依存するアプリの起動を妨げる可能性があります。DirectX を再インストールまたは更新するだけで解決する場合もありますが、より複雑で、さらに調査が必要な場合もあります。このガイドでは、Windows を完全に再インストールすることなく問題を解決できるよう、いくつかのトラブルシューティング手順 (簡単なものから、より複雑なものまで) を順を追って説明します。システムやドライバーの更新、マルウェアのスキャンなどの解決策が見つかるでしょう。もちろん、Windows は必要以上に面倒なことをするものです。

D3DCompiler_47.dll が見つからないエラーを修正する方法

修正方法1:WindowsとDirectXをアップデートする

これは当然のことですが、Windows をアップデートすると、DirectX の一部を含む、不足しているコンポーネントが修正または置き換えられることがあります。問題の DLL は DirectX の一部であるため、お使いの OS で利用可能な最新バージョンを実行していることを確認する価値があります。[設定] > [更新とセキュリティ] > [更新プログラムの確認]に移動してください。Windows 10/11 では、これらの更新プログラムには DirectX のパッチが含まれています (少なくとも含まれているはずです)。利用可能な更新プログラムがあれば、[ダウンロード] をクリックしてインストールし、再起動してください。

Windows 7や8などの古いバージョンでは、特定の更新プログラムKB4019990を入手することをお勧めします。これにより、D3DCompiler_47.dllを含むDirectXコンポーネントが更新されます。Windowsの自動更新プロセスではDirectXパッチが含まれない場合があるため、この更新プログラムを手動でインストールすると問題が解決することがよくあります。

解決策2:グラフィックカードのドライバーをアップデートする

古い、または互換性のないGPUドライバーは、特にゲーム関連の問題において、DLLファイルの欠落や破損の原因となることがよくあります。デバイスマネージャーを開くには、スタートボタンを右クリックして選択します。ディスプレイアダプターを探し、GPUを右クリックして「ドライバーの更新」を選択します。「更新されたドライバーソフトウェアを自動的に検索する」を選択します。Windowsが更新プログラムを見つけた場合は、自動的にインストールされます。そうでない場合は、NVIDIA、AMD、IntelなどのGPUメーカーのWebサイトに直接アクセスし、最新のドライバーを手動でダウンロードしてください。インストール後、通常は再起動が必要です。

一部の環境では、新しいドライバーにはDirectXのサポート強化やDLLファイルの破損につながるバグ修正が含まれているため、この方法でDLLファイルの欠落が解消されることがあります。実際にいくつかのマシンでこの問題が解決したのを確認していますが、必ずしも解決するとは限りません。

解決策3:マルウェアスキャンを実行する

マルウェアやウイルスなどは、重要なDirectXファイルを含むDLLファイルを破損または削除する可能性があります。そのため、Windowsとドライバーを更新しても問題が解決しない場合は、システムをスキャンしてみる価値があります。Windows Defender(または信頼できるサードパーティ製のウイルス対策ソフト)でスキャンを実行できます。スタートメニューからWindowsセキュリティを開き、 「ウイルスと脅威の防止」を選択して「フルスキャン」を実行するだけです。マルウェアがDLLファイルになりすましたり、単にDLLファイルを破損させたりする場合があり、それがファイルの欠落や破損の原因となることがあります。

フルスキャンを実行して、脅威が検出され、駆除されたかどうかを確認してください。その後、アプリを再度起動してみてください。

修正方法4:コマンドプロンプトでDLLを再登録する

これはちょっと変わった方法ですが、WindowsがDLLファイルの認識を失ってしまった場合、DLLを再登録すると解決することがあります。コマンドプロンプトを管理者として開きます。cmd検索し、右クリックして「管理者として実行」を選択します。以下のコマンドを入力し、それぞれ入力後にEnterキーを押してください。

regsvr32 /i D3DCompiler_47.dll
regsvr32 /u D3DCompiler_47.dll

システムによっては、これで問題が解決する場合があります。その後、コマンドプロンプトを閉じて再起動し、エラーがまだ表示されるかどうかを確認してください。DLLが登録解除されている場合があるため、再登録することでWindowsにDLLの場所に関する新しい情報を与えることができます。

修正5:システムファイルチェッカー(SFC)スキャンを実行する

DLLファイルやその他のシステムファイルが破損している場合、WindowsにはSFC /scannowという組み込みツールがあり、これらをチェックして修復できます。コマンドプロンプトを管理者として開き、コマンドを入力してsfc /scannowEnterキーを押してください。システムがスキャンされ、破損したファイルの修復が試みられます。処理には時間がかかる場合がありますが、システムファイルの破損がDLLエラーの原因となっている場合は試してみる価値があります。

奇妙な話ですが、一部のシステム構成では、システムファイルの破損が根本原因となっており、この方法で簡単に解決できます。SFCによる単純なファイル置換で、DLLファイルの欠落による不具合が解消される場合もあります。

解決策6:問題のあるソフトウェアまたはゲームを再インストールする

他の方法を試しても解決しない場合は、アプリやゲーム自体に問題がある可能性があります。コントロールパネル > プログラム > プログラムのアンインストールからアンインストールしてください。その後、公式サイトから最新バージョンをダウンロードしてください。DLLファイルがインストーラーに同梱されている場合があるので、新しいコピーを入手できます。再インストールして、もう一度試してみてください。基本的な方法に思えるかもしれませんが、場合によっては驚くほど効果があります。

(それでも解決しない場合は、 Winhanceのようなシステム修復ツールの使用を検討してください。)ただし、使用する前に必ずレビューを読んでください。自動化ツールはDLLの問題を一括で修復してくれる場合があり、多くの手間を省くことができます。

まとめ

  • WindowsとDirectXをアップデートする
  • GPUドライバーをアップデートしてください。
  • マルウェアスキャンを実行する
  • コマンドプロンプトを使用してDLLを再登録する
  • SFCシステムファイルチェックを実行します
  • エラーが発生しているゲームまたはアプリを再インストールしてください。

まとめ

このようなDLLエラーへの対処は面倒ですが、多くの場合、アップデートとシステムスキャンを組み合わせることで解決できます。原因は単に古いドライバや破損したシステムファイルである場合もあり、それらを修正することでエラーが解消されます。それでも解決しない場合は、影響を受けているプログラムを再インストールすればたいてい解決します。この情報が、誰かが何時間もキーボードに頭をぶつけるような事態を避けるのに役立つことを願っています。頑張ってください!