エントリ ポイントが見つかりませんを直す4つの安全な方法

はじめに

「エントリ ポイントが見つかりません」というエラーは、アプリが必要とするプロシージャを、読み込んだDLLが提供していないときに発生します。DLLの欠落より、アプリ内ファイルの破損やバージョン不一致が原因である場合もあります。まずエラー全文を保存し、再起動とアプリ修復、再インストール、Windowsコンポーネント修復、補助スキャンの順に4つの方法を試してください。表示されたプロシージャ名、DLL名、ファイルパスを確認すると、誤ったDLLを置き換えるリスクを避けられます。

DLLのエントリポイントが見つからないことを示すWindowsエラー画面

主な症状

ダイアログには通常、「プロシージャ エントリ ポイントがダイナミック リンク ライブラリに見つかりませんでした」と表示されます。タイトルバーには起動できなかったプログラム名が示されることがあります。本文にプロシージャ名、DLL名、場合によっては完全なファイルパスも表示されます。

  • Windows自体は操作できるものの、特定のアプリやゲームだけが起動しません。
  • 対象アプリのインストールまたは更新後にエラーが始まります。
  • 該当DLLを必要とする特定機能を実行したときだけ失敗します。
  • 無関係な複数のアプリで発生し、Windowsコンポーネントの問題が疑われます。

Microsoftの資料によると、プログラムがDLLからエクスポート済み関数を取得するには、関数名が正確に一致する必要があります。このため、エントリポイントエラーは単純な「DLLが見つかりません」というエラーとは異なります。仕組みはGetProcAddressの公式ドキュメントで確認できます。

「エントリ ポイントが見つかりません」のクイック診断

  • アプリ更新後、1つのアプリだけで発生する:方法1から始めます。
  • 1つのアプリだけで発生し、DLLのパスがアプリのインストール先にある:方法1で直らなければ方法2へ進みます。
  • 複数のアプリで発生する、またはパスがWindowsのシステムフォルダーを示す:方法3を実行します。
  • 公式の修復手順を実行しても原因を絞り込めない:方法4の補助スキャンを検討します。

方法1:問題のアプリを再起動、更新、修復する

この方法が適している場合

1つのアプリだけでエラーが発生する場合、特にインストールや更新が中断された直後に適しています。システムファイルを変更しない低リスクな方法です。

手順

  1. プロシージャ名、DLL名、パスを含むダイアログ全体を撮影するか書き留めます。
  2. Windowsを再起動し、対象アプリをもう一度開きます。エントリポイントエラーの解消を確認するためWindowsを再起動する画面
  3. 設定 > アプリ > インストールされているアプリを開き、対象アプリの詳細オプションに修復があれば実行します。
  4. アプリ内の更新機能または正規の提供元で、互換性のある更新版を確認します。

すべてのプログラムに修復機能が用意されているわけではありません。設定画面とコントロールパネルから利用できる手順は、MicrosoftのWindowsでアプリとプログラムを修復する方法に掲載されています。

確認方法

最初にダイアログが表示された操作を繰り返します。同じプロシージャ名とDLL名のエラーが再表示されず、対象機能が動作すれば確認完了です。

方法2:正規の提供元からアプリを再インストールする

この方法が適している場合

エラーが1つのプログラムに限られる場合や、表示されたDLLがそのプログラムのフォルダー内にある場合に適しています。再インストールにより、同じビルドに対応したアプリファイル一式を復元できます。

手順

  1. 同期されていない文書、保存済みプロジェクト、アプリ固有の設定をバックアップします。
  2. 設定 > アプリ > インストールされているアプリから対象アプリをアンインストールします。
  3. 使用中だったファイルを解放するため、Windowsを再起動します。
  4. 元の開発元またはMicrosoft Storeの正規ページからアプリを再インストールします。
  5. 拡張機能や改造データを戻す前に、クリーンな状態で動作を確認します。

確認方法

再インストールしたアプリを2回起動し、失敗していた操作も再現します。同じプロシージャが引き続き見つからない場合は、エラー全文を保存してください。インストールされたビルドが異なるDLLインターフェイスを要求している可能性があるため、開発元での確認が必要です。

方法3:DISMとSFCで保護されたWindowsコンポーネントを修復する

この方法が適している場合

無関係な複数のアプリで問題が起きる場合、Windows機能にも異常がある場合、またはDLLのパスがWindowsのシステムフォルダーを示す場合に使用します。DISMは修復元となるWindowsイメージを修復し、SFCは保護されたシステムファイルを検査します。

手順

  1. コマンド プロンプトを検索し、管理者として実行を選択します。Windowsでコマンドプロンプトを管理者として実行する画面
  2. Windowsイメージの修復コマンドを実行します。
    DISM.exe /Online /Cleanup-image /Restorehealth
    DISMのRestoreHealthコマンドを実行してWindowsイメージを修復する画面
  3. DISMに操作が正常に完了したことを示す結果が表示されるまで待ちます。
  4. システムファイルチェッカーを実行します。
    sfc /scannow
  5. 検証が100%に達するまで待ち、Windowsを再起動します。

この実行順序と結果メッセージは、Microsoftのシステムファイルチェッカーの手順に基づいています。

確認方法

影響を受けていたアプリを少なくとも2つ起動します。SFCで整合性違反が検出されず、1つのアプリだけが失敗する場合は方法2へ戻るか、そのアプリの開発元へ連絡してください。

公式の修復手順で問題を絞り込めない場合、Fionn DLL Fixerでは、DLLの欠落、破損、バージョン不一致、System32のパスに関係する問題を補助的にスキャンできます。

方法4:Fionn DLL Fixerで補助修復を行う

この方法が適している場合

Windowsの内蔵機能とアプリ固有の修復を試した後、補助スキャンと修復後の再検査を利用したい場合に適しています。修復結果は、対象アプリを起動して別途確認する必要があります。

手順

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

確認方法

「Recheck」を実行した後、対象アプリを起動して最初に失敗した操作を繰り返します。スキャンの完了だけでは、アプリのエラーが解消したことを証明できません。

修復結果の確認チェックリスト

確認項目確認できる結果失敗した場合の次の対応
エラーダイアログ同じプロシージャ名とDLL名のメッセージが表示されない。新しいメッセージと保存した元の内容を比較する。
アプリの起動アプリが開き、終了せずに動作を続ける。表示されたDLLのパスに合う方法を選び直す。
失敗していた機能以前失敗した操作が最後まで完了する。再現手順を添えてアプリの開発元へ連絡する。
システム全体への影響以前影響を受けていた他のアプリも起動する。DISMとSFCの結果メッセージを確認する。

まとめ

最初にエラー全文を保存し、1つのアプリだけの問題か、Windows全体に関係する問題かを切り分けてください。単独のアプリなら修復または更新から始め、専用フォルダー内のDLLが疑われる場合は再インストールします。複数のアプリに影響する場合は、DISMの後にSFCを実行します。必要に応じてFionn DLL Fixerの補助スキャンを利用できますが、最後は必ず元の操作を再現して確認してください。同じエラーが残る場合は、プロシージャ名、DLLのパス、試した手順をアプリの開発元または公式サポートへ送ります。

よくある質問

エントリポイントエラーとDLL欠落エラーは同じですか?

同じではありません。DLL欠落エラーは、Windowsがライブラリ自体を見つけられない状態です。エントリポイントエラーは、DLLを読み込めても、アプリが要求するエクスポート済みプロシージャを解決できない状態を一般に示します。そのため、単一ファイルを探すのではなく、互換性のあるファイル一式を復元する必要があります。

なぜ1つのプログラムだけでエラーが起きるのですか?

プログラムがWindowsの共通フォルダーより先に、自身のフォルダーにある専用DLLを読み込む場合があるためです。そのDLLがプログラムの想定するバージョンと異なる可能性があります。システムファイルを変更するより、対象アプリの修復またはクリーンな再インストールのほうが適切です。

表示されたDLLを手動で置き換えてもよいですか?

未確認のダウンロードサイトから入手したファイルで置き換えないでください。ファイル名が同じでも、エクスポートされる関数、32ビットまたは64ビットの構成、配布元、ファイルの完全性が一致するとは限りません。正規のインストーラー、Microsoftのシステムファイル修復機能、または開発元のサポートを利用してください。

このエラーでSFCを実行するのはいつですか?

複数のアプリで発生する場合、Windows機能にも異常がある場合、またはダイアログが保護されたWindowsフォルダーを示す場合に、DISMの後でSFCを実行します。1つのアプリだけが失敗し、SFCで整合性違反が見つからない場合は、そのアプリのインストール状態を優先して確認します。

アプリの開発元には何を伝えればよいですか?

プログラムのバージョン、Windowsのバージョン、完全なプロシージャ名、DLLのファイル名とパス、発生し始めた時期、実行済みの修復手順を伝えます。スクリーンショットがあれば、エクスポート済み関数の識別に影響し得る大文字と小文字、記号も正確に共有できます。